DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

pathconf(S)


pathconf -- get configurable pathname variables

Syntax

cc . . . -lc

#include <unistd.h>

long pathconf (path, name) char *path; int name;

long fpathconf (fildes, name) int fildes, name;

Description

pathconf- determines current value of the pathname of a file or directory

fpathconf- determines current value of an open file descriptor

The pathconf and fpathconf functions provide a method for an application to determine the current value of a configurable limit or option (variable) associated with a file or directory.

For pathconf, the path argument points to the pathname of a file or directory. For fpathconf, the fildes the 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

 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 fpathcon 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 fpathcon 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-1990 System Application Program Interface (API) [C Language] (ISO/IEC 9945-1) ;
and NIST FIPS 151-1 .


© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003