pathconf(2)
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() system calls provide a method
- for applications to determine the current value of a configurable sys
- tem limit or
option variable associated with a pathname or file descrip - tor.
- 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. Sym - bolic constants
for each name value are found in the include file - <unistd.h>.
- 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 file name.
- _PC_PATH_MAX
- The maximum number of bytes in a pathname.
- _PC_PIPE_BUF
- The maximum number of bytes which will be written
- atomically to a
pipe. - _PC_CHOWN_RESTRICTED
- Return 1 if appropriate privilege is required for
- the chown(2)
system call, otherwise 0. requires appropriate - privilege in all
cases, but this behavior was optional in prior edi - tions of the
standard. - _PC_NO_TRUNC
- Return greater than zero if attempts to use pathname
- components
longer than {NAME_MAX} will result in an [ENAMETOO - LONG] error;
otherwise, such components will be truncated to - {NAME_MAX}.
requires the error in all cases, but this behavior - was optional
in prior editions of the standard, and some non - POSIX-compliant
file systems do not support this behavior. - _PC_VDISABLE
- Returns the terminal character disabling value.
- _PC_ASYNC_IO
- Return 1 if asynchronous I/O is supported, otherwise
- 0.
- _PC_PRIO_IO
- Returns 1 if prioritised I/O is supported for this
- file, otherwise 0.
- _PC_SYNC_IO
- Returns 1 if synchronised I/O is supported for this
- file, otherwise 0.
- _PC_ALLOC_SIZE_MIN
- Minimum number of bytes of storage allocated for any
- portion of a
file. - _PC_FILESIZEBITS
- Number of bits needed to represent the maximum file
- size.
- _PC_REC_INCR_XFER_SIZE
- Recommended increment for file transfer sizes be
- tween
_PC_REC_MIN_XFER_SIZE and _PC_REC_MAX_XFER_SIZE. - _PC_REC_MAX_XFER_SIZE
- Maximum recommended file transfer size.
- _PC_REC_MIN_XFER_SIZE
- Minimum recommended file transfer size.
- _PC_REC_XFER_ALIGN
- Recommended file transfer buffer alignment.
- _PC_SYMLINK_MAX
- Maximum number of bytes in a symbolic link.
- _PC_ACL_EXTENDED
- Returns 1 if an Access Control List (ACL) can be set
- on the specified file, otherwise 0.
- _PC_ACL_PATH_MAX
- Maximum number of ACL entries per file.
- _PC_CAP_PRESENT
- Returns 1 if a capability state can be set on the
- specified file,
otherwise 0. - _PC_INF_PRESENT
- Returns 1 if an information label can be set on the
- specified
file, otherwise 0. - _PC_MAC_PRESENT
- Returns 1 if a Mandatory Access Control (MAC) label
- can be set on
the specified file, otherwise 0.
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()
system calls shall return -1 and set errno to the corre - sponding value.
- [EINVAL] The value of the name argument is in
- valid.
- [EINVAL] The implementation does not support an
- association of
- the variable name with the associated
- file.
- The pathconf() system call will fail if:
- [ENOTDIR] A component of the path prefix is not a
- directory.
- [ENAMETOOLONG] A component of a pathname exceeded
- {NAME_MAX} charac
- ters (but see _PC_NO_TRUNC above), or an
- entire path
name exceeded {PATH_MAX} characters. - [ENOENT] The named file does not exist.
- [EACCES] Search permission is denied for a compo
- nent of the
- path prefix.
- [ELOOP] Too many symbolic links were encountered
- in translat
- ing the pathname.
- [EIO] An I/O error occurred while reading from
- or writing to
- the file system.
- The fpathconf() system call will fail if:
- [EBADF] The fd argument is not a valid open file
- descriptor.
- [EIO] An I/O error occurred while reading from
- or writing to
- the file system.
SEE ALSO
HISTORY
- The pathconf() and fpathconf() system calls first appeared
- in 4.4BSD.
- BSD November 4, 2002