pathconf(2)
NAME
pathconf, fpathconf − Get configurable pathname variables.
SYNOPSIS
#include <unistd.h>
long pathconf (path, name)
char ∗path;
int name;
int 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 a 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 that file or directory. All of the variables listed in the table "Configurable Pathname Values" are supported. The variables in the table not prefixed with _POSIX are defined internally and not in any header files. The symbolic constants, defined in <unistd.h>, are the corresponding values used for name.
Configurable Pathname Values
Variablename ValueNotes
{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
{BLKSIZE}{_PC_BLKSIZE} 8
{SYNC_IO}{_PC_SYNC_IO} 9
The following notes apply to the entries in the table above:
1. If path or fildes refers to a directory, the value returned applies to the directory itself.
2. Applies only to terminal files. EINVAL is returned otherwise.
3. Path or fildes refers to a directory. The value returned applies to the filenames within the directory.
4. EINVAL is returned if path or fildes does not refer to a directory.
5. 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 a FIFO, or fildes refers to a pipe or FIFO, the value returned applies 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. EINVAL is returned if path or fildes refers to any other type of file.
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 the directory.
8. The value returned is the optimum block size in bytes for I/O operations on the file, or 0 if such information is not available.
9. Applies only to regular disk files. EINVAL is returned otherwise.
RETURN VALUE
The pathconf() and fpathconf() functions return the current variable value for the file or directory without changing errno. The value returned will not be more restrictive than the corresponding value described to the application when it was compiled with <limits.h> or <unistd.h>.
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 is invalid.
For each of the following conditions, if the condition is detected, the pathconf() function shall return −1 and set errno to the corresponding value:
[EACCES] Search permission is denied for a component of the path prefix.
[EINVAL] The association of the variable name with the specified file is not supported (see notes above).
[ENAMETOOLONG] The length of the path argument exceeds {PATH_MAX}, or a pathname component is longer than {NAME_MAX} while {_POSIX_NO_TRUNC} 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 shall return −1 and set errno to the corresponding value:
[EBADF] The fildes argument is not a valid file descriptor.
[EINVAL] The association of the variable name with the specified value is not supported (see notes above).
CX/UX Programmer’s Reference Manual