The pathconf(2) and fpathconf(2) functions
provides 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(2), the path argument is the name
of a file or directory. For fpathconf(2), 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 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 privileges are required for the
chown(2)
system call, otherwise 0.
_PC_NO_TRUNC
Return 1 if file names longer than {KERN_NAME_MAX} are
truncated.
If the call to pathconf(2) or fpathconf(2) 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.