PATHCONF(S) UNIX System V PATHCONF(S)
Name
pathconf - get configurable pathname variables
Syntax
#include <unistd.h>
long pathconf (path,name)
char *path;
int name;
long fpathconf (fildes,name)
int fildes, name;
Description
The pathconf() and fpathconf() functions provide a method
for the application to determine the current value of a
configurable limit or option (variable) that is associated
with the file or directory.
For pathconf(), the path argument points to the pathname of
a file or directory. For fpathconf(), the fildes argument
is an open file descriptor.
The name argument represents the variable to be queried
relative to the file or directory. The implementation
supports all of the variables listed in the following table
and may support others. The variables in the following
table come from <limits.h> or <unistd.h> and the symbolic
constants, defined in <unistd.h>, that are the corresponding
values used for name.
Variable name Value Notes
____________________________________________________
{LINK_MAX} {_PC_LINK_MAX} 1
{MAX_CANON} {_PC_MAX_CANON} 2
{MAX_INPUT} {_PC_MAX_INPUT} 2
{NAME_MAX} {_PC_NAME_MAX} 3,4
{PATH_MAX} {_PC_PATH_MAX} 4,5
{PIPE_BUF} {_PC_PIPE_BUF} 6
{_POSIX_CHOWN_RESTRICTED}{_PC_CHOWN_RESTRICTED} 7
{_POSIX_NO_TRUNC} {_PC_NO_TRUNC} 3,4
{_POSIX_VDISABLE} {_PC_VDISABLE} 2
Note that:
1. If path or fildes refers to a directory, the value
returned applies to the directory itself.
2. The behavior is undefined if path or fildes does not
refer to a terminal file.
3. If path or fildes refers to a directory, the value
returned applies to the filenames within the directory.
4. The behavior is undefined if path or fildes does not
refer to a directory.
5. If path or fildes refers to a directory, the value
returned is the maximum length of a relative pathname
when the specified directory is the working directory.
6. If path refers to FIFO, or filedes refers to a pipe or
FIFO, the value returned appplies to the referenced
object itself. If path or fildes refers to a
directory, the value returned applies to any FIFOs that
exist or can be created within the directory. If path
or fildes refer to any other type of file, the behavior
is undefined.
7. If path or fildes refer to a directory, the value
returned applies to any files defined in this standard,
other than directories, that exist or can be created
within this directory.
Return Value
If name is an invalid value, the pathconf() and fpathconf()
functions return -1.
If the variable corresponding to name has no limit for the
path or file descriptor, the pathconf() and fpathconf()
functions return a -1 without changing errno.
If the implementation needs to use path to determine the
value of name and the implementation does not support the
association of name with the file specified by path, or if
the process did not have the appropriate priveleges to query
the file specified by path, or path does not exist, the
pathconf() function returns -1.
If the implementation needs to use fildes to determine the
value of name and the implementation does not support the
association of name with the file specified by fildes, or if
fildes is an invalid descriptor, the fpathconf() function
returns -1.
Otherwise, the pathconf() and fpathconf() functions return
the current variable value for the file or directory without
changing errno. The value returned is not more restrictive
than the corresponding value described to the application
when it was compiled with the implementation's <limits.h> or
<unistd.h>.
Diagnostics
If any of the following conditions occur, the pathconf() and
fpathconf() functions return -1 and set errno to the
corresponding value:
[EINVAL] The value of name is invalid.
For each of the following conditions, if the condition is
detected, the pathconf() function returns a -1 and set errno
to the following value:
[EACCES] Search permission is denied for a component
of the path prefix.
[EINVAL] The implementaion does not support an
association of the variable name with the
specified file.
[ENAMETOOLONG] The length of the path argument exceeds
{PATH_MAX} or a pathname component is longer
than {NAME_MAX} while {POSIX_NO_TRUNCT} is in
effect.
[ENOENT] The named file does not exist or the path
argument points to an empty string.
[ENOTDIR] A component of the path prefix is not a
directory.
For each of the following conditions, if the condition is
detected, the fpathconf() function returns a -1 and set
errno to the corresponding value:
[EBADF] The fildes argument is not a valid file
descriptor.
[EINVAL] The implementation does not support an
association of the variable name with the
specified file.
Standards Conformance
pathconf is conformant with:
IEEE POSIX Std 1003.1-1988 with C Standard Language-
Dependent System Support;
and NIST FIPS 151-1.
(printed 6/20/89)