Go to the previous, next section.
int chown(const char *path, uid_t owner, gid_t
group);
int fchown(int fd, uid_t owner, gid_t
group);
path: [in] points to the path of the file to modify.
fd: [in] the file descriptor to modify.
owner: [in] the new uid. -1 for no change.
group: [in] the new gid. -1 for no change.
chown changes the uid and gid of file specified by
path to owner and group. fchown
changes the uid and gid of file descriptor fd to owner and
group. The superuser may do whatever he wishes with the uid and gid
of a file. The owner of a file may only change the gid of the file to any group
he belongs to.
On success zero is returned. On error, -1 is returned and errno
is set to one of the following values:
for chown:
EPERM: the effective uid of the task is not equal the the uid
of the file and the task does not have superuser privileges.
ENOTDIR, EACCESS, EFAULT,
ENOENT, ENOMEM ENAMETOOLONG,
EROFS or ELOOP. for fchown:
EPERM: the effective uid of the task is not equal the the uid
of the file and the task does not have superuser privileges.
ENOENT, EROFS or EBADF.