Man Linux: Main Page and Category List

NAME

       dpns_creat - create a new DPNS file or reset it in the name server

SYNOPSIS

       #include <sys/types.h>
       #include "dpns_api.h"

       int dpns_creat (const char *path, mode_t mode)

       int  dpns_creatx  (const  char  *path,  mode_t mode, struct dpns_fileid
       *file_uniqueid)

DESCRIPTION

       dpns_creat creates a new DPNS file or resets it in the name server.

       If the file exists, the length is truncated to 0 and the mode and owner
       are unchanged.

       If  the file does not exist yet, an entry is created in the name server
       database and the file’s owner ID is set to the effective user ID of the
       requestor.   The  group ID of the file is set to the effective group ID
       of the requestor or is taken from the parent directory  if  the  latter
       has the S_ISGID bit set.

       The  access  permission bits for the file are taken from mode, then all
       bits set in the requestor’s file mode creation mask  are  cleared  (see
       dpns_umask(3)).

       dpns_creatx  behaves  in  the  same  way and returns the file unique id
       (name server hostname and file id).

       path   specifies the logical pathname  relative  to  the  current  DPNS
              directory or the full DPNS pathname.

RETURN VALUE

       This  routine  returns  0  if the operation was successful or -1 if the
       operation failed. In the latter case, serrno is set appropriately.

ERRORS

       ENOENT       A component of path prefix does not exist  or  path  is  a
                    null pathname.

       EACCES       Search  permission  is  denied  on a component of the path
                    prefix or the file does not exist and write permission  on
                    the  parent  directory  is  denied  or the file exists and
                    write permission on the file itself is denied.

       EFAULT       path or file_uniqueid is a NULL pointer.

       EEXIST       File exists already and has replicas.

       ENOTDIR      A component of path prefix is not a directory.

       EISDIR       path is an existing directory.

       EINVAL       The fileclass in the parent directory is zero.

       ENOSPC       The name server database is full.

       ENAMETOOLONG The length of path exceeds CA_MAXPATHLEN or the length  of
                    a path component exceeds CA_MAXNAMELEN.

       SENOSHOST    Host unknown.

       SENOSSERV    Service unknown.

       SECOMERR     Communication error.

       ENSNACT      Name server is not running or is being shutdown.

SEE ALSO

       Castor_limits(4),             dpns_chdir(3),             dpns_chmod(3),
       dpns_stat(3), dpns_statg(3), dpns_umask(3)

AUTHOR

       LCG Grid Deployment Team