NAME
pathconf
,
fpathconf
—
get configurable pathname
variables
LIBRARY
library “libc”
SYNOPSIS
#include
<unistd.h>
long
pathconf
(const
char *path, int
name);
long
fpathconf
(int
fd, int name);
DESCRIPTION
Thepathconf
()
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 ofmaxsize
. _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
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.