Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ pathconf(S) — OpenDesktop Software Development System 3.0.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought


 pathconf(S)                    6 January 1993                    pathconf(S)


 Name

    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

    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


    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 ter-
        minal 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 vari-
    able 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 func-
    tions 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 {PATHMAX} or a
                   pathname component is longer than {NAMEMAX} while
                   {POSIXNOTRUNCT} 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.


Typewritten Software • bear@typewritten.org • Edmonds, WA 98026