NAME¶
gfs_chmod - change permissions of a file
SYNOPSIS¶
#include <gfarm/gfarm.h>
char *gfs_chmod (char *
gfarm_url, mode_t mode);
DESCRIPTION¶
gfs_chmod() changes the mode of the file given by
gfarm_url.
Permission bit masks of
mode are similar to ones of mode parameter to
chmod(2), though only the least 9 bit are effective.
An executable file cannot be changed to a non-executable file and vice versa,
unless the number of fragment of the file is only one. In detail, a file has
multiple fragments with any execution bit should not be changed to that with
no execution bit. It is necessary to have at least one execution bit.
Similarly, a file has multiple fragments with no execution bit should not be
changed to that with any execution bit.
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 parent directory of gfarm_url did not allow
write permission.
- GFARM_ERR_OPERATION_NOT_PERMITTED
- The effective UID does not match the owner of the file, and
is not zero. Or an attempt was made to change an executable file with more
than one fragment to a non-executable file, or vice versa.
- GFARM_ERR_NO_SUCH_OBJECT
- The file does not exist.
- GFARM_ERR_NOT_A_DIRECTORY
- A component of the path prefix is not a directory.
- Others
- An error except the above occurred. The reason is shown by
its pointed strings.