---
name: "rfio_chmod"
section: "3"
platform: "linux"
package: "libdpm-dev"
version: "1.10.0-2+b3"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/rfio_chmod"
---

# rfio\_chmod(3)

change access mode of a directory/file

## NAME

rfio\_chmod, rfio\_fchmod - change access mode of a directory/file

## SYNOPSIS

**#include \<sys/types.h\>**\
 **#include "rfio\_api.h"**

**int rfio\_chmod (const char \****path***, mode\_t** *mode***);**\
 **int rfio\_fchmod (int** *s***, mode\_t** *mode***);**

## DESCRIPTION

**rfio\_chmod** sets the access permission portion of the mode of a directory/file to the bit pattern in *mode.*

**rfio\_fchmod** is identical to **rfio\_chmod** but works on the file descriptor *s* returned by **rfio\_open**.

- *path*

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

- *mode*

  is constructed by OR'ing the bits defined in \<**sys/stat.h**\> under Unix or  **"statbits.h"** under Windows/NT:

  **S\_IRUSR 0000400** read by owner\
   **S\_IWUSR 0000200** write by owner\
   **S\_IXUSR 0000100** execute/search by owner\
   **S\_IRGRP 0000040** read by group\
   **S\_IWGRP 0000020** write by group\
   **S\_IXGRP 0000010** execute/search by group\
   **S\_IROTH 0000004** read by others\
   **S\_IWOTH 0000002** write by others\
   **S\_IXOTH 0000001** execute/search by others

  The effective user ID of the process must match the owner of the file or be super-user. If a directory is writable and has the sticky bit set, files/directories within that directory can be removed or renamed only if:

  the effective user ID of the requestor matches the owner ID of the file or

  the effective user ID of the requestor matches the owner ID of the directory or

  the file is writable by the requestor or

  the requestor is super-user.

## 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

- **EPERM**

  The effective user ID does not match the owner of the file and is not super-user.

- **ENOENT**

  The named file/directory does not exist or is a null pathname.

- **EBADF**

  *s* is not a valid file descriptor.

- **EACCES**

  Search permission is denied on a component of the *path* prefix or write permission on the file itself is denied.

- **EFAULT**

  *path* is a NULL pointer.

- **ENOTDIR**

  A component of *path* prefix is not a directory.

- **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.

## SEE ALSO

**[Castor\_limits(4)](/Castor_limits/4.md)**

## AUTHOR

**LCG Grid Deployment** Team
