chmod.2, chown.2, open.2, mkdir.2, mknod.2, readlink.2, stat.2, symlink.2, mkfifo.3, scandir.3, sem_wait.3: ERRORS: combine errors into a single alphabetic list

These pages split out extra errors for some APIs into a separate
list.  Probably, the pages are easier to ready if all errors are
combined into a single list.

Note that there still remain a few pages where the errors are
listed separately for different APIs. For the moment, it seems
best to leave those pages as is, since the error lists are
largely distinct in those pages.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
Michael Kerrisk 2021-08-18 03:02:55 +02:00
parent 97e2d8e602
commit 90879cbd20
11 changed files with 196 additions and 235 deletions

View File

@ -245,10 +245,30 @@ Search permission is denied on a component of the path prefix.
(See also
.BR path_resolution (7).)
.TP
.B EBADF
.RB ( fchmod ())
The file descriptor
.I fd
is not valid.
.TP
.B EBADF
.RB ( fchmodat ())
.I pathname
is relative but
.I dirfd
is neither
.B AT_FDCWD
nor a valid file descriptor.
.TP
.B EFAULT
.I pathname
points outside your accessible address space.
.TP
.B EINVAL
.RB ( fchmodat ())
Invalid flag specified in
.IR flags .
.TP
.B EIO
An I/O error occurred.
.TP
@ -269,6 +289,20 @@ Insufficient kernel memory was available.
.B ENOTDIR
A component of the path prefix is not a directory.
.TP
.B ENOTDIR
.RB ( fchmodat ())
.I pathname
is relative and
.I dirfd
is a file descriptor referring to a file other than a directory.
.TP
.B ENOTSUP
.RB ( fchmodat ())
.I flags
specified
.BR AT_SYMLINK_NOFOLLOW ,
which is not supported.
.TP
.B EPERM
The effective UID does not match the owner of the file,
and the process is not privileged (Linux: it does not have the
@ -282,55 +316,6 @@ The file is marked immutable or append-only.
.TP
.B EROFS
The named file resides on a read-only filesystem.
.PP
The general errors for
.BR fchmod ()
are listed below:
.TP
.B EBADF
The file descriptor
.I fd
is not valid.
.TP
.B EIO
See above.
.TP
.B EPERM
See above.
.TP
.B EROFS
See above.
.PP
The same errors that occur for
.BR chmod ()
can also occur for
.BR fchmodat ().
The following additional errors can occur for
.BR fchmodat ():
.TP
.B EBADF
.I pathname
is relative but
.I dirfd
is neither
.B AT_FDCWD
nor a valid file descriptor.
.TP
.B EINVAL
Invalid flag specified in
.IR flags .
.TP
.B ENOTDIR
.I pathname
is relative and
.I dirfd
is a file descriptor referring to a file other than a directory.
.TP
.B ENOTSUP
.I flags
specified
.BR AT_SYMLINK_NOFOLLOW ,
which is not supported.
.SH VERSIONS
.BR fchmodat ()
was added to Linux in kernel 2.6.16;

View File

@ -232,10 +232,33 @@ Search permission is denied on a component of the path prefix.
(See also
.BR path_resolution (7).)
.TP
.B EBADF
.RB ( fchown ())
.I fd
is not a valid open file descriptor.
.TP
.B EBADF
.RB ( fchownat ())
.I pathname
is relative but
.I dirfd
is neither
.B AT_FDCWD
nor a valid file descriptor.
.TP
.B EFAULT
.I pathname
points outside your accessible address space.
.TP
.B EINVAL
.RB ( fchownat ())
Invalid flag specified in
.IR flags .
.TP
.B EIO
.RB ( fchown ())
A low-level I/O error occurred while modifying the inode.
.TP
.B ELOOP
Too many symbolic links were encountered in resolving
.IR pathname .
@ -253,6 +276,13 @@ Insufficient kernel memory was available.
.B ENOTDIR
A component of the path prefix is not a directory.
.TP
.B ENOTDIR
.RB ( fchownat ())
.I pathname
is relative and
.I dirfd
is a file descriptor referring to a file other than a directory.
.TP
.B EPERM
The calling process did not have the required permissions
(see above) to change owner and/or group.
@ -264,51 +294,6 @@ The file is marked immutable or append-only.
.TP
.B EROFS
The named file resides on a read-only filesystem.
.PP
The general errors for
.BR fchown ()
are listed below:
.TP
.B EBADF
.I fd
is not a valid open file descriptor.
.TP
.B EIO
A low-level I/O error occurred while modifying the inode.
.TP
.B ENOENT
See above.
.TP
.B EPERM
See above.
.TP
.B EROFS
See above.
.PP
The same errors that occur for
.BR chown ()
can also occur for
.BR fchownat ().
The following additional errors can occur for
.BR fchownat ():
.TP
.B EBADF
.I pathname
is relative but
.I dirfd
is neither
.B AT_FDCWD
nor a valid file descriptor.
.TP
.B EINVAL
Invalid flag specified in
.IR flags .
.TP
.B ENOTDIR
.I pathname
is relative and
.I dirfd
is a file descriptor referring to a file other than a directory.
.SH VERSIONS
.BR fchownat ()
was added to Linux in kernel 2.6.16;

View File

@ -126,6 +126,15 @@ did not allow search permission.
(See also
.BR path_resolution (7).)
.TP
.B EBADF
.RB ( mkdirat ())
.I pathname
is relative but
.I dirfd
is neither
.B AT_FDCWD
nor a valid file descriptor.
.TP
.B EDQUOT
The user's quota of disk blocks or inodes on the filesystem has been
exhausted.
@ -179,6 +188,13 @@ A component used as a directory in
.I pathname
is not, in fact, a directory.
.TP
.B ENOTDIR
.RB ( mkdirat ())
.I pathname
is relative and
.I dirfd
is a file descriptor referring to a file other than a directory.
.TP
.B EPERM
The filesystem containing
.I pathname
@ -187,23 +203,6 @@ does not support the creation of directories.
.B EROFS
.I pathname
refers to a file on a read-only filesystem.
.PP
The following additional errors can occur for
.BR mkdirat ():
.TP
.B EBADF
.I pathname
is relative but
.I dirfd
is neither
.B AT_FDCWD
nor a valid file descriptor.
.TP
.B ENOTDIR
.I pathname
is relative and
.I dirfd
is a file descriptor referring to a file other than a directory.
.SH VERSIONS
.BR mkdirat ()
was added to Linux in kernel 2.6.16;

View File

@ -163,6 +163,15 @@ did not allow search permission.
(See also
.BR path_resolution (7).)
.TP
.B EBADF
.BR ( mknodat ())
.I pathname
is relative but
.I dirfd
is neither
.B AT_FDCWD
nor a valid file descriptor.
.TP
.B EDQUOT
The user's quota of disk blocks or inodes on the filesystem has been
exhausted.
@ -207,6 +216,13 @@ A component used as a directory in
.I pathname
is not, in fact, a directory.
.TP
.B ENOTDIR
.BR ( mknodat ())
.I pathname
is relative and
.I dirfd
is a file descriptor referring to a file other than a directory.
.TP
.B EPERM
.I mode
requested creation of something other than a regular file,
@ -224,23 +240,6 @@ does not support the type of node requested.
.B EROFS
.I pathname
refers to a file on a read-only filesystem.
.PP
The following additional errors can occur for
.BR mknodat ():
.TP
.B EBADF
.I pathname
is relative but
.I dirfd
is neither
.B AT_FDCWD
nor a valid file descriptor.
.TP
.B ENOTDIR
.I pathname
is relative and
.I dirfd
is a file descriptor referring to a file other than a directory.
.SH VERSIONS
.BR mknodat ()
was added to Linux in kernel 2.6.16;

View File

@ -1034,6 +1034,15 @@ and
in
.BR proc (5).
.TP
.B EBADF
.RB ( openat ())
.I pathname
is relative but
.I dirfd
is neither
.B AT_FDCWD
nor a valid file descriptor.
.TP
.B EBUSY
.B O_EXCL
was specified in
@ -1210,6 +1219,13 @@ is not, in fact, a directory, or \fBO_DIRECTORY\fP was specified and
.I pathname
was not a directory.
.TP
.B ENOTDIR
.RB ( openat ())
.I pathname
is a relative pathname and
.I dirfd
is a file descriptor referring to a file other than a directory.
.TP
.B ENXIO
.BR O_NONBLOCK " | " O_WRONLY
is set, the named file is a FIFO, and
@ -1285,23 +1301,6 @@ The
flag was specified, and an incompatible lease was held on the file
(see
.BR fcntl (2)).
.PP
The following additional errors can occur for
.BR openat ():
.TP
.B EBADF
.I pathname
is relative but
.I dirfd
is neither
.B AT_FDCWD
nor a valid file descriptor.
.TP
.B ENOTDIR
.I pathname
is a relative pathname and
.I dirfd
is a file descriptor referring to a file other than a directory.
.SH VERSIONS
.BR openat ()
was added to Linux in kernel 2.6.16;

View File

@ -160,6 +160,15 @@ Search permission is denied for a component of the path prefix.
(See also
.BR path_resolution (7).)
.TP
.B EBADF
.RB ( readlinkat ())
.I pathname
is relative but
.I dirfd
is neither
.B AT_FDCWD
nor a valid file descriptor.
.TP
.B EFAULT
.I buf
extends outside the process's allocated address space.
@ -195,19 +204,9 @@ Insufficient kernel memory was available.
.TP
.B ENOTDIR
A component of the path prefix is not a directory.
.PP
The following additional errors can occur for
.BR readlinkat ():
.TP
.B EBADF
.I pathname
is relative but
.I dirfd
is neither
.B AT_FDCWD
nor a valid file descriptor.
.TP
.B ENOTDIR
.RB ( readlinkat ())
.I pathname
is relative and
.I dirfd

View File

@ -381,9 +381,23 @@ in the path prefix of
.I fd
is not a valid open file descriptor.
.TP
.B EBADF
.RB ( fstatat ())
.I pathname
is relative but
.I dirfd
is neither
.B AT_FDCWD
nor a valid file descriptor.
.TP
.B EFAULT
Bad address.
.TP
.B EINVAL
.RB ( fstatat ())
Invalid flag specified in
.IR flags .
.TP
.B ELOOP
Too many symbolic links encountered while traversing the path.
.TP
@ -411,6 +425,13 @@ A component of the path prefix of
.I pathname
is not a directory.
.TP
.B ENOTDIR
.RB ( fstatat ())
.I pathname
is relative and
.I dirfd
is a file descriptor referring to a file other than a directory.
.TP
.B EOVERFLOW
.I pathname
or
@ -429,27 +450,6 @@ calls
on a file whose size exceeds
.I (1<<31)\-1
bytes.
.PP
The following additional errors can occur for
.BR fstatat ():
.TP
.B EBADF
.I pathname
is relative but
.I dirfd
is neither
.B AT_FDCWD
nor a valid file descriptor.
.TP
.B EINVAL
Invalid flag specified in
.IR flags .
.TP
.B ENOTDIR
.I pathname
is relative and
.I dirfd
is a file descriptor referring to a file other than a directory.
.SH VERSIONS
.BR fstatat ()
was added to Linux in kernel 2.6.16;

View File

@ -152,6 +152,15 @@ did not allow search permission.
(See also
.BR path_resolution (7).)
.TP
.B EBADF
.RB ( symlinkat ())
.I linkpath
is relative but
.I newdirfd
is neither
.B AT_FDCWD
nor a valid file descriptor.
.TP
.B EDQUOT
The user's quota of resources on the filesystem has been exhausted.
The resources could be inodes or disk blocks, depending on the filesystem
@ -183,6 +192,13 @@ or
.I linkpath
is an empty string.
.TP
.B ENOENT
.RB ( symlinkat ())
.I linkpath
is a relative pathname and
.IR newdirfd
refers to a directory that has been deleted.
.TP
.B ENOMEM
Insufficient kernel memory was available.
.TP
@ -195,6 +211,13 @@ A component used as a directory in
.I linkpath
is not, in fact, a directory.
.TP
.B ENOTDIR
.RB ( symlinkat ())
.I linkpath
is relative and
.I newdirfd
is a file descriptor referring to a file other than a directory.
.TP
.B EPERM
The filesystem containing
.I linkpath
@ -203,29 +226,6 @@ does not support the creation of symbolic links.
.B EROFS
.I linkpath
is on a read-only filesystem.
.PP
The following additional errors can occur for
.BR symlinkat ():
.TP
.B EBADF
.I linkpath
is relative but
.I newdirfd
is neither
.B AT_FDCWD
nor a valid file descriptor.
.TP
.B ENOENT
.I linkpath
is a relative pathname and
.IR newdirfd
refers to a directory that has been deleted.
.TP
.B ENOTDIR
.I linkpath
is relative and
.I newdirfd
is a file descriptor referring to a file other than a directory.
.SH VERSIONS
.BR symlinkat ()
was added to Linux in kernel 2.6.16;

View File

@ -131,6 +131,15 @@ is set to indicate the error.
One of the directories in \fIpathname\fP did not allow search
(execute) permission.
.TP
.B EBADF
.RB ( mkfifoat ())
.I pathname
is relative but
.I dirfd
is neither
.B AT_FDCWD
nor a valid file descriptor.
.TP
.B EDQUOT
The user's quota of disk blocks or inodes on the filesystem has been
exhausted.
@ -160,25 +169,15 @@ The directory or filesystem has no room for the new file.
A component used as a directory in \fIpathname\fP is not, in fact, a
directory.
.TP
.B EROFS
\fIpathname\fP refers to a read-only filesystem.
.PP
The following additional errors can occur for
.BR mkfifoat ():
.TP
.B EBADF
.I pathname
is relative but
.I dirfd
is neither
.B AT_FDCWD
nor a valid file descriptor.
.TP
.B ENOTDIR
.RB ( mkfifoat ())
.I pathname
is a relative pathname and
.I dirfd
is a file descriptor referring to a file other than a directory.
.TP
.B EROFS
\fIpathname\fP refers to a read-only filesystem.
.SH VERSIONS
.BR mkfifoat ()
was added to glibc in version 2.4.

View File

@ -191,6 +191,15 @@ or greater than zero if the first argument is considered to be
respectively less than, equal to, or greater than the second.
.SH ERRORS
.TP
.B EBADF
.RB ( scandirat ())
.I dirp
is relative but
.I dirfd
is neither
.B AT_FDCWD
nor a valid file descriptor.
.TP
.B ENOENT
The path in \fIdirp\fR does not exist.
.TP
@ -199,19 +208,9 @@ Insufficient memory to complete the operation.
.TP
.B ENOTDIR
The path in \fIdirp\fR is not a directory.
.PP
The following additional errors can occur for
.BR scandirat ():
.TP
.B EBADF
.I dirp
is relative but
.I dirfd
is neither
.B AT_FDCWD
nor a valid file descriptor.
.TP
.B ENOTDIR
.RB ( scandirat ())
.I dirp
is a relative pathname and
.I dirfd

View File

@ -113,6 +113,11 @@ on error, the value of the semaphore is left unchanged,
is set to indicate the error.
.SH ERRORS
.TP
.B EAGAIN
.RB ( sem_trywait ())
The operation could not be performed without blocking (i.e., the
semaphore currently has the value zero).
.TP
.B EINTR
The call was interrupted by a signal handler; see
.BR signal (7).
@ -120,23 +125,15 @@ The call was interrupted by a signal handler; see
.B EINVAL
.I sem
is not a valid semaphore.
.PP
The following additional error can occur for
.BR sem_trywait ():
.TP
.B EAGAIN
The operation could not be performed without blocking (i.e., the
semaphore currently has the value zero).
.PP
The following additional errors can occur for
.BR sem_timedwait ():
.TP
.B EINVAL
.RB ( sem_timedwait ())
The value of
.I abs_timeout.tv_nsecs
is less than 0, or greater than or equal to 1000 million.
.TP
.B ETIMEDOUT
.RB ( sem_timedwait ())
The call timed out before the semaphore could be locked.
.\" POSIX.1-2001 also allows EDEADLK -- "A deadlock condition
.\" was detected", but this does not occur on Linux(?).