Man Linux: Main Page and Category List

NAME

       gfs_pio_create - create a Gfarm file

SYNOPSIS

       #include <gfarm/gfarm.h>

       char  *gfs_pio_create  (char  *  gfarm_url,  int  flags,  mode_t  mode,
       GFS_File * gfp);

DESCRIPTION

       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.

RETURN VALUES

       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.

       Others An  error except the above occurred.  The reason is shown by its
              pointed strings.

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_set_view_index(3), gfs_pio_set_view_local(3),
       gfs_pio_ungetc(3), gfs_pio_write(3)