Man Linux: Main Page and Category List

NAME

       rfio_open - opens a file

SYNOPSIS

       #include <sys/types.h>
       #include "rfio_api.h"

       int rfio_open (const char *path, int flags, int mode);

       Under Linux, for large files:
       #define _LARGEFILE64_SOURCE
       #include <sys/types.h>
       #include "rfio_api.h"

       int rfio_open64 (const char *path, int flags, int mode);

       For large files, under other systems:
       #include <sys/types.h>
       #include "rfio_api.h"

       int rfio_open64 (const char *path, int flags, int mode);

DESCRIPTION

       rfio_open opens the file whose name is the string pointed to by path, a
       character string containing the filename specification, and  associates
       a FILE stream with it.
       flags are formed by ORing the following values:

               O_RDONLY        Open for reading only
               O_WRONLY        Open for writing only
               O_RDWR          Open for reading and writing
               O_NDELAY        Do not block on open
               O_APPEND        Append on each write
               O_CREAT         Create file if it does not exist
               O_TRUNC         Truncate size to 0
               O_EXCL          Error if create and file exists
               O_LARGEFILE     When size can be superior to 2GB-1.
                               See NOTES

       mode specifies the permission bits to be set if the file is created.

       Opening  a  file  with O_APPEND set causes each write on the file to be
       appended to the end.  If O_TRUNC is specified and the file exists,  the
       file  is truncated to zero length.  If O_EXCL is set with O_CREAT, then
       if the file already exists, the open returns an  error.   This  can  be
       used  to  implement  a  simple  exclusive access locking mechanism.  If
       O_EXCL is set and the last component of  the  pathname  is  a  symbolic
       link,  the  open  will  succeed  even if the symbolic link points to an
       existing name.  If the O_NDELAY flag is specified  and  the  open  call
       would  result in the process being blocked for some reason (for example
       waiting for a carrier on a dial-up line), the open returns immediately.
       The  first time the process attempts to perform IO on the open file, it
       will block (not currently implemented). On  systems  that  support  the
       Large  Files,  O_LARGEFILE in rfio_open allows files whose sizes cannot
       be represented in 31 bits to be opened.

RETURN VALUE

       If successful, returns a non-negative integer  which  may  be  used  to
       refer  to  the  file on subsequent rfio_write, rfio_read and rfio_close
       calls.  On failure, rfio_open returns -1 and the error code  is  stored
       in serrno.

ERRORS

       ENOENT       The  named  file/directory  does  not  exist  or is a null
                    pathname.

       EACCES       Search permission is denied on a  component  of  the  path
                    prefix.

       EBUSY        Device  or  resource  busy.  Happens if you try to open in
                    write mode a LCG file  that  is  in  an  active  migration
                    stream.

       EFAULT       path is a NULL pointer.

       ENOTDIR      A component of path prefix is not a directory.

       ENAMETOOLONG The  length of path exceeds CA_MAXPATHLEN or the length of
                    a path component exceeds CA_MAXNAMELEN.

       SENOSHOST    Host unknown.

       SENOSSERV    Service unknown.

       SECOMERR     Communication error.

SEE ALSO

       Castor_limits(4),rfio_write(3),rfio_read(3),rfio_close(3)

NOTES

       On Irix, Tru64 and IA64 the 64 bit mode is the default  one,  open  and
       open64 are identical. The flag O_LARGEFILE is accepted on Irix and IA64
       (where it has no effect) but not on Tru64.   On  all  other  platforms,
       rfio_open with O_LARGEFILE is equivalent to a call to rfio_open64.

AUTHOR

       LCG Grid Deployment Team