pathconf(2)




NAME

     fpathconf, pathconf - get configurable pathname variables


SYNOPSIS

     #include <unistd.h>

     long fpathconf(int fildes, int name);

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


DESCRIPTION

     The fpathconf() and pathconf() functions  provide  a  method
     for the application to determine the current value of a con-
     figurable 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. The variables in the
     following table come from <limits.h> or <unistd.h>  and  the
     symbolic   constants,   defined   in   <unistd.h>,  are  the
     corresponding values used for name:

     _________________________________________________________________
    |        Variable        |      Value of name     |     Notes    |
    |________________________|________________________|______________|
    | FILESIZEBITS           |  _PC_FILESIZEBITS      | 3,4          |
    |________________________|________________________|______________|
    | 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            |
    |________________________|________________________|______________|
    | XATTR_ENABLED          |  _PC_XATTR_ENABLED     | 1            |
    |________________________|________________________|______________|
    | XATTR_EXISTS           |  _PC_XATTR_EXISTS      | 1            |
    |________________________|________________________|______________|
    | _POSIX_CHOWN_RESTRICTED|  _PC_CHOWN_RESTRICTED  | 7            |
    |________________________|________________________|______________|
    | _POSIX_NO_TRUNC        |  _PC_NO_TRUNC          | 3,4          |
    |________________________|________________________|______________|
    | _POSIX_VDISABLE        |  _PC_VDISABLE          | 2            |
    |________________________|________________________|______________|
    | _POSIX_ASYNC_IO        |  _PC_ASYNC_IO          | 8            |
    |________________________|________________________|______________|
    | _POSIX_PRIO_IO         |  _PC_PRIO_IO           | 8            |
    |________________________|________________________|______________|
    | _POSIX_SYNC_IO         |  _PC_SYNC_IO           | 8            |
    |________________________|________________________|______________|

     Notes:

     1. If path or  fildes  refers  to  a  directory,  the  value
        returned applies to the directory itself.

     2. If path or fildes does not refer to a terminal  file,  it
        is  unspecified  whether  an  implementation  supports an
        association of the variable name with the specified file.

     3. If path or  fildes  refers  to  a  directory,  the  value
        returned applies to filenames within the directory.

     4. If path or fildes does not refer to a  directory,  it  is
        unspecified whether an implementation supports an associ-
        ation of the variable name with the specified file.

     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 a FIFO, or fildes refers to a  pipe  or
        FIFO,  the  value  returned  applies  to  the  referenced
        object.  If path or fildes refers  to  a  directory,  the
        value  returned applies to any FIFO that exists or can be
        created within the directory.  If path or  fildes  refers
        to  any  other type of file, it is unspecified whether an
        implementation supports an association  of  the  variable
        name with the specified file.

     7. If path or  fildes  refers  to  a  directory,  the  value
        returned  applies  to  any files, other than directories,
        that exist or can be created within the directory.

     8. If path or fildes refers to a directory, it  is  unspeci-
        fied whether an implementation supports an association of
        the variable name with the specified file.


RETURN VALUES

     If name is an invalid value, both pathconf() and fpathconf()
     return -1 and errno is set to indicate the error.

     If the variable corresponding to name has no limit  for  the
     path  or  file  descriptor,  both pathconf() and fpathconf()
     return -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
     appropriate privileges to query the file specified by  path,
     or  path  does not exist, pathconf() returns -1 and errno is
     set to indicate the error.

     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  file  descriptor,  fpathconf() will
     return -1 and errno is set to indicate the error.

     Otherwise pathconf()  or  fpathconf()  returns  the  current
     variable  value  for  the file or directory without changing
     errno. The value returned will not be more restrictive  than
     the corresponding value available to the application when it
     was  compiled  with  the  implementation's   <limits.h>   or
     <unistd.h>.


ERRORS

     The pathconf() function will fail if:

     EINVAL
           The value of name is not valid.

     ELOOP Too many symbolic links were encountered in  resolving
           path.

     The pathconf() function may fail if:

     EACCES
           Search permission is denied for  a  component  of  the
           path prefix.

     EINVAL
           The implementation 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.

     ENAMETOOLONG
           Pathname resolution of a  symbolic  link  produced  an
           intermediate result whose length exceeds PATH_MAX.

     ENOENT
           A component of path does not name an existing file  or
           path is an empty string.

     ENOTDIR
           A component of the path prefix is not a directory.

     The fpathconf() function will fail if:

     EINVAL
           The value of name is not valid.

     The fpathconf() function may fail if:

     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.


ATTRIBUTES

     See attributes(5) for descriptions of the  following  attri-
     butes:

     _______________________________________________________________
   |        ATTRIBUTE TYPE       |          ATTRIBUTE VALUE       |
   | ____________________________|________________________________|_
   |  Interface Stability        |  fpathconf() is Standard;  path|
   |                             |  conf() is Stable              |
   |_____________________________|________________________________|
   | MT-Level                    | pathconf() is Async-Signal-Safe|
   |_____________________________|________________________________|


SEE ALSO

     sysconf(3C), limits(4), attributes(5), standards(5)


Man(1) output converted with man2html