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