Name

gfs_pio_open — open a file in the Gfarm file system

Synopsis

#include <gfarm/gfarm.h>
gfarm_error_t gfs_pio_open( gfarm_url,  
  flags,  
  gfp);  
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.

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)