Name

gfs_pio_create — create a file in the Gfarm file system

Synopsis

#include <gfarm/gfarm.h>
gfarm_error_t gfs_pio_create( gfarm_url,  
  flags,  
  mode,  
  gfp);  
const char * gfarm_url;
int flags;
gfarm_mode_t mode;
GFS_File * gfp;
 

DESCRIPTION

gfs_pio_create() creates a new file in the Gfarm file system whose name is the string pointed to by gfarm_url with the access mode mode, and returns a GFS_File structure to the address pointed to by gfp. Mode specifies the file permissions to be created, and is modified by the process's umask.

The flags argument has the same meaning as the second argument of gfs_pio_open(), including the point such that exactly one of GFARM_FILE_RDONLY, GFARM_FILE_WRONLY, and GFARM_FILE_RDWR should be specified.

Note that GFARM_FILE_TRUNC must be explicitly specified by the flags argument if needed.

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_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 file did not exist yet and write access to the parent directory is not allowed. 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)