gfs_pio_open - open a Gfarm file
char *gfs_pio_open (char * gfarm_url, int flags, GFS_File * gfp);
gfs_pio_open() opens the Gfarm file whose name is the string specified
by gfarm_url, and returns a GFS_File structure to the address pointed
by gfp. Values of flags are constructed by a bitwise-inclusive-OR of
the following list. Exactly one of the first three values should be
Open for reading only.
Open for writing only.
Open for reading and writing.
If the file already exist and is a regular file, it will be
truncated to length 0 if the open mode allows writing.
The file is opened in append mode.
The following may be specified as a hint for efficient execution:
File will be accessed sequentially.
File may be replicated to a local filesystem when accessing
File may not be replicated to a local filesystem when accessing
When the selected file replica does not exist or cannot be
accessed by some reason, open will fail without trying to access
another file replica.
GFARM_FILE_REPLICATION and GFARM_FILE_NOT_REPLICATION cannot be
specified at the same time.
When gfs_pio_open() is used by parallel processes executed by gfrun(3)
or gfmpirun_p4(3), the returned GFS_File structure of each process has
individual file pointers among parallel processes.
NULL The function terminated successfully.
Insufficient memory was available.
User authentication failed when connecting to gfmd(8) or
The requested access to the file is not allowed, or one of the
directories in gfarm_url did not allow search (execute)
gfarm_url refers to a directory.
A component used as a directory in gfarm_url does not exist.
A component used as a directory in gfarm_url is not, in fact, a
Others An error except the above occurred. The reason is shown by its
gfs_pio_close(3), gfs_pio_create(3), gfs_pio_eof(3), gfs_pio_error(3),
gfs_pio_flush(3), gfs_pio_getc(3), gfs_pio_getline(3), gfs_pio_open(3),
gfs_pio_putc(3), gfs_pio_putline(3), gfs_pio_puts(3), gfs_pio_read(3),
gfs_pio_seek(3), gfs_pio_set_view_index(3), gfs_pio_set_view_local(3),