gfs_pio_create() creates a new Gfarm file 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. In addition, it is possible to specify GFARM_FILE_EXCLUSIVE. With this flag, gfs_pio_create() will fail when the file already exists.
Note that GFARM_FILE_TRUNC must be explicitly specified by the flags argument since gfarm-1.0.4, if it's needed. Although this was implicitly assumed before.
When gfs_pio_create() is used by parallel processes executed by
gfrun(3) or gfmpirun_p4(3), each process should specify a consistent
value for mode. The returned GFS_File
structure of each
process has individual file pointers among parallel processes.
NULL
The function terminated successfully.
GFARM_ERR_NO_MEMORY
Insufficient memory was available.
GFARM_ERR_AUTHENTICATION
User authentication failed when connecting to gfmd(8) or gfsd(8).
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.
GFARM_ERR_ALREADY_EXISTS
gfarm_url already exists and GFARM_FILE_EXCLUSIVE was used.
GFARM_ERR_IS_A_DIRECTORY
gfarm_url refers to a directory.
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.
An error except the above occurred. The reason is shown by its pointed strings.
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), gfs_pio_ungetc(3), gfs_pio_write(3)