fchmod.3p (3783B)
- '\" et
- .TH FCHMOD "3P" 2017 "IEEE/The Open Group" "POSIX Programmer's Manual"
- .\"
- .SH PROLOG
- This manual page is part of the POSIX Programmer's Manual.
- The Linux implementation of this interface may differ (consult
- the corresponding Linux manual page for details of Linux behavior),
- or the interface may not be implemented on Linux.
- .\"
- .SH NAME
- fchmod
- \(em change mode of a file
- .SH SYNOPSIS
- .LP
- .nf
- #include <sys/stat.h>
- .P
- int fchmod(int \fIfildes\fP, mode_t \fImode\fP);
- .fi
- .SH DESCRIPTION
- The
- \fIfchmod\fR()
- function shall be equivalent to
- \fIchmod\fR()
- except that the file whose permissions are changed is specified
- by the file descriptor
- .IR fildes .
- .P
- If
- .IR fildes
- references a shared memory object, the
- \fIfchmod\fR()
- function need only affect the S_IRUSR, S_IWUSR, S_IRGRP, S_IWGRP,
- S_IROTH, and S_IWOTH file permission bits.
- .P
- If
- .IR fildes
- references a typed memory object, the behavior of
- \fIfchmod\fR()
- is unspecified.
- .P
- If
- .IR fildes
- refers to a socket, the behavior of
- \fIfchmod\fR()
- is unspecified.
- .P
- If
- .IR fildes
- refers to a STREAM (which is
- \fIfattach\fR()-ed
- into the file system name space) the call returns successfully, doing
- nothing.
- .SH "RETURN VALUE"
- Upon successful completion,
- \fIfchmod\fR()
- shall return 0. Otherwise, it shall return \-1 and set
- .IR errno
- to indicate the error.
- .SH ERRORS
- The
- \fIfchmod\fR()
- function shall fail if:
- .TP
- .BR EBADF
- The
- .IR fildes
- argument is not an open file descriptor.
- .TP
- .BR EPERM
- The effective user ID does not match the owner of the file and the
- process does not have appropriate privileges.
- .TP
- .BR EROFS
- The file referred to by
- .IR fildes
- resides on a read-only file system.
- .P
- The
- \fIfchmod\fR()
- function may fail if:
- .TP
- .BR EINTR
- The
- \fIfchmod\fR()
- function was interrupted by a signal.
- .TP
- .BR EINVAL
- The value of the
- .IR mode
- argument is invalid.
- .TP
- .BR EINVAL
- The
- .IR fildes
- argument refers to a pipe and the implementation disallows execution of
- \fIfchmod\fR()
- on a pipe.
- .LP
- .IR "The following sections are informative."
- .SH EXAMPLES
- .SS "Changing the Current Permissions for a File"
- .P
- The following example shows how to change the permissions for a
- file named
- .BR /home/cnd/mod1
- so that the owner and group have read/write/execute permissions, but
- the world only has read/write permissions.
- .sp
- .RS 4
- .nf
- #include <sys/stat.h>
- #include <fcntl.h>
- .P
- mode_t mode;
- int fildes;
- \&...
- fildes = open("/home/cnd/mod1", O_RDWR);
- fchmod(fildes, S_IRWXU | S_IRWXG | S_IROTH | S_IWOTH);
- .fi
- .P
- .RE
- .SH "APPLICATION USAGE"
- None.
- .SH RATIONALE
- None.
- .SH "FUTURE DIRECTIONS"
- None.
- .SH "SEE ALSO"
- .IR "\fIchmod\fR\^(\|)",
- .IR "\fIchown\fR\^(\|)",
- .IR "\fIcreat\fR\^(\|)",
- .IR "\fIfcntl\fR\^(\|)",
- .IR "\fIfstatat\fR\^(\|)",
- .IR "\fIfstatvfs\fR\^(\|)",
- .IR "\fImknod\fR\^(\|)",
- .IR "\fIopen\fR\^(\|)",
- .IR "\fIread\fR\^(\|)",
- .IR "\fIwrite\fR\^(\|)"
- .P
- The Base Definitions volume of POSIX.1\(hy2017,
- .IR "\fB<sys_stat.h>\fP"
- .\"
- .SH COPYRIGHT
- Portions of this text are reprinted and reproduced in electronic form
- from IEEE Std 1003.1-2017, Standard for Information Technology
- -- Portable Operating System Interface (POSIX), The Open Group Base
- Specifications Issue 7, 2018 Edition,
- Copyright (C) 2018 by the Institute of
- Electrical and Electronics Engineers, Inc and The Open Group.
- In the event of any discrepancy between this version and the original IEEE and
- The Open Group Standard, the original IEEE and The Open Group Standard
- is the referee document. The original Standard can be obtained online at
- http://www.opengroup.org/unix/online.html .
- .PP
- Any typographical or formatting errors that appear
- in this page are most likely
- to have been introduced during the conversion of the source files to
- man page format. To report such errors, see
- https://www.kernel.org/doc/man-pages/reporting_bugs.html .