NAME
pathconf,
fpathconf —
get configurable pathname variables
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <unistd.h>
long
pathconf(
const
char *path,
int
name);
long
fpathconf(
int
fd,
int name);
DESCRIPTION
The
pathconf() and
fpathconf() functions
provide a method for applications to determine the current value of a
configurable system limit or option variable associated with a pathname or
file descriptor.
For
pathconf, the
path argument is the
name of a file or directory. For
fpathconf, the
fd argument is an open file descriptor. The
name argument specifies the system variable to be
queried. Symbolic constants for each name value are found in the
<unistd.h> header.
The available values are as follows:
-
-
_PC_LINK_MAX
- The maximum file link count.
-
-
_PC_MAX_CANON
- The maximum number of bytes in terminal canonical input
line.
-
-
_PC_MAX_INPUT
- The minimum maximum number of bytes for which space is
available in a terminal input queue.
-
-
_PC_NAME_MAX
- The maximum number of bytes in a filename, not including a
terminating null character.
-
-
_PC_PATH_MAX
- The maximum number of bytes in a pathname, including the
terminating null character.
-
-
_PC_PIPE_BUF
- The maximum number of bytes which will be written
atomically to a pipe.
-
-
_PC_CHOWN_RESTRICTED
- Return 1 if appropriate privileges are required for the
chown(2) system call,
otherwise 0.
-
-
_PC_NO_TRUNC
- Return 0 if filenames longer than
{
NAME_MAX
} are silently truncated, or non-zero if
an error is generated when {NAME_MAX
} is
exceeded.
-
-
_PC_VDISABLE
- Returns the terminal character disabling value.
-
-
_PC_SYNC_IO
- Returns 1 if synchronized I/O is supported, otherwise
0.
-
-
_PC_FILESIZEBITS
- If the maximum size file that could ever exist on the
mounted file system is
maxsize
, then the returned
value is 2 plus the floor of the base 2 logarithm of
maxsize
.
-
-
_PC_SYMLINK_MAX
- The maximum number of bytes in a symbolic link.
-
-
_PC_2_SYMLINKS
- When referring to a directory the system supports the
creation of symbolic links within that directory; for nondirectory files,
the meaning of
{_PC_2_SYMLINKS}
is undefined.
RETURN VALUES
If the call to
pathconf or
fpathconf is not
successful, -1 is returned and
errno is set
appropriately. Otherwise, if the variable is associated with functionality
that does not have a limit in the system, -1 is returned and
errno is not modified. Otherwise, the current variable
value is returned.
ERRORS
If any of the following conditions occur, the
pathconf and
fpathconf functions shall return -1 and set
errno to the corresponding value.
-
-
- [
EINVAL
]
- The value of the name argument is
invalid, or the implementation does not support an association of the
variable name with the associated file.
pathconf() will fail if:
-
-
- [
EACCES
]
- Search permission is denied for a component of the path
prefix.
-
-
- [
EIO
]
- An I/O error occurred while reading from or writing to the
file system.
-
-
- [
ELOOP
]
- Too many symbolic links were encountered in translating the
pathname.
-
-
- [
ENAMETOOLONG
]
- A component of a pathname exceeded
{
NAME_MAX
} characters, or an entire path name
exceeded {PATH_MAX
} characters.
-
-
- [
ENOENT
]
- The named file does not exist.
-
-
- [
ENOTDIR
]
- A component of the path prefix is not a directory.
fpathconf() will fail if:
-
-
- [
EBADF
]
- fd is not a valid open file
descriptor.
-
-
- [
EIO
]
- An I/O error occurred while reading from or writing to the
file system.
SEE ALSO
sysctl(3)
STANDARDS
The
pathconf() and
fpathconf() functions
conform to
IEEE Std 1003.1-1990
(“POSIX.1”).
HISTORY
The
pathconf and
fpathconf functions first
appeared in
4.4BSD.