GFS_PIO_OPEN(3)

NAME
gfs_pio_open - open a file in the Gfarm file system

SYNOPSIS

#include <gfarm/gfarm.h>

gfarm_error_t gfs_pio_open(const char * gfarm_url, int flags, GFS_File * gfp);

DESCRIPTION

gfs_pio_open() opens a file in the Gfarm file system specified by gfarm_url, and returns a GFS_File structure to the address pointed by gfp. gfarm_url is a path name in the Gfarm file system, or a Gfarm URL in the form of gfarm://metaserver:port/path/name.

Values of flags are constructed by a bitwise-inclusive-OR of the following list. Exactly one of the first three values should be specified:

GFARM_FILE_RDONLY
    Open for reading only.

GFARM_FILE_WRONLY
    Open for writing only.

GFARM_FILE_RDWR
    Open for reading and writing.

GFARM_FILE_TRUNC
    If the file already exist and is a regular file, it will be truncated to length 0 if the open mode allows writing.

GFARM_FILE_APPEND
    The file is opened in append mode.

RETURN VALUES

GFARM_ERR_NO_ERROR
    The function terminated successfully.

GFARM_ERR_IS_A_DIRECTORY
    gfarm_url refers to a directory.

GFARM_ERR_IS_A_SYMBOLIC_LINK
    gfarm_url refers to a symbolic link.

GFARM_ERR_OPERATION_NOT_PERMITTED
    gfarm_url refers to not a regular file.

GFARM_ERR_NO_SUCH_OBJECT
    A component used as a directory in gfarm_url does not exist.

GFARM_ERR_NOT_A_DIRECTORY
    A component used as a directory in gfarm_url is not, in fact, a directory.

GFARM_ERR_PERMISSION_DENIED
    The requested access to the file is not allowed, or one of the directories in gfarm_url did not allow search (execute) permission. Or, the authentication to the metadata server fails.

GFARM_ERR_NO_MEMORY
    Insufficient memory was available.

GFARM_ERR_INVALID_ARGUMENT
    flags is not valid.

GFARM_ERR_GFARM_URL_HOST_IS_MISSING
    gfarm_url does not include a metadata server.

GFARM_ERR_GFARM_URL_PORT_IS_MISSING
    gfarm_url does not include a port number of the metadata server.

GFARM_ERR_UNKNOWN_HOST
    The metadata server cannot be resolved.

GFARM_ERR_TOO_MANY_OPEN_FILES
    The process opens too many files.

GFARM_ERR_TOO_MANY_OPEN_FILES_IN_SYSTEM
    The system limit on the total number of open files has been reached.

GFARM_ERR_NETWORK_IS_UNREACHABLE
    Network is unrechable.

GFARM_ERR_OPERATION_TIMED_OUT
    Connetion timeout occurs.

GFARM_ERR_PROTOCOL
    Protocol error occurs.

GFARM_ERR_BROKEN_PIPE
    Connection to the metadata server is broken.

GFARM_ERR_PROTOCOL_NOT_SUPPORTED
    Specified authentication protocol is not supported.

GFARM_ERR_AUTHENTICATION
    User authentication failed when connecting to the metadata server.

Others
    An error except the above occurred. The reason is shown by gfarm_error_string(3).

SEE ALSO

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_ungetc(3), gfs_pio_write(3)