pathconf(3p) - phpMan

Command: man perldoc info search(apropos)  


FPATHCONF(P)               POSIX Programmer's Manual              FPATHCONF(P)



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 shall determine the current value of a
       configurable limit or option (variable) that is associated with a  file  or  direc-
       tory.

       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. Implementations shall support all of the variables listed in the follow-
       ing  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>, are the
       corresponding values used for name.

                Variable                    Value of name           Requirements
                {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
                {POSIX_ALLOC_SIZE_MIN}      _PC_ALLOC_SIZE_MIN
                {POSIX_REC_INCR_XFER_SIZE}  _PC_REC_INCR_XFER_SIZE
                {POSIX_REC_MAX_XFER_SIZE}   _PC_REC_MAX_XFER_SIZE
                {POSIX_REC_MIN_XFER_SIZE}   _PC_REC_MIN_XFER_SIZE
                {POSIX_REC_XFER_ALIGN}      _PC_REC_XFER_ALIGN
                {SYMLINK_MAX}               _PC_SYMLINK_MAX         4,9
                _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

   Requirements
        1. If  path or fildes refers to a directory, the value returned shall apply 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 speci-
           fied file.


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


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


        5. If  path or fildes refers to a directory, the value returned shall be the maxi-
           mum 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 shall apply to the referenced object. If path or fildes  refers  to  a
           directory,  the  value  returned  shall apply 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 shall apply to  any
           files,  other  than directories, that exist or can be created within the direc-
           tory.


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


        9. If  path or fildes refers to a directory, the value returned shall be the maxi-
           mum length of the string that a symbolic link in that directory can contain.


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

       If the variable corresponding to name has no limit for the path or file descriptor,
       both pathconf() and fpathconf() shall return -1  without  changing  errno.  If  the
       implementation needs to use path to determine the value of name and the implementa-
       tion 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() shall return -1 and set errno 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() shall return -1 and
       set errno to indicate the error.

       Otherwise, pathconf() or fpathconf() shall return the current  variable  value  for
       the  file or directory without changing errno. The value returned shall 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 shall fail if:

       EINVAL The value of name is not valid.

       ELOOP  A  loop  exists  in symbolic links encountered during resolution of the path
              argument.


       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.

       ELOOP  More than {SYMLOOP_MAX} symbolic links were encountered during resolution of
              the path argument.

       ENAMETOOLONG
              The length of the path argument exceeds {PATH_MAX} or a  pathname  component
              is longer than {NAME_MAX}.

       ENAMETOOLONG
              As  a result of encountering a symbolic link in resolution of the path argu-
              ment, the length of the substituted pathname string exceeded {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 shall 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.


       The following sections are informative.

EXAMPLES
       None.

APPLICATION USAGE
       None.

RATIONALE
       The pathconf() function was proposed immediately after the sysconf() function  when
       it was realized that some configurable values may differ across file system, direc-
       tory, or device boundaries.

       For example, {NAME_MAX} frequently changes between System V and BSD-based file sys-
       tems;  System  V uses a maximum of 14, BSD 255.  On an implementation that provides
       both types of file systems, an application would be forced to  limit  all  pathname
       components  to 14 bytes, as this would be the value specified in <limits.h> on such
       a system.

       Therefore, various useful values can be queried on any pathname or file descriptor,
       assuming that the appropriate permissions are in place.

       The value returned for the variable {PATH_MAX} indicates the longest relative path-
       name that could be given if the specified directory is the process' current working
       directory. A process may not always be able to generate a name that long and use it
       if a subdirectory in the pathname crosses into a more restrictive file system.

       The value returned for the variable _POSIX_CHOWN_RESTRICTED also applies to  direc-
       tories  that  do  not  have file systems mounted on them. The value may change when
       crossing a mount point, so applications that need to know  should  check  for  each
       directory.  (An  even  easier  check is to try the chown() function and look for an
       error in case it happens.)

       Unlike the values  returned  by  sysconf(),  the  pathname-oriented  variables  are
       potentially  more volatile and are not guaranteed to remain constant throughout the
       process' lifetime. For example, in between two calls to pathconf(), the file system
       in question may have been unmounted and remounted with different characteristics.

       Also  note that most of the errors are optional. If one of the variables always has
       the same value on an implementation, the implementation need not look  at  path  or
       fildes  to  return  that value and is, therefore, not required to detect any of the
       errors except the meaning of [EINVAL] that indicates that the value of name is  not
       valid for that variable.

       If  the  value  of any of the limits is unspecified (logically infinite), they will
       not be defined in <limits.h> and the pathconf() and fpathconf() functions return -1
       without changing errno. This can be distinguished from the case of giving an unrec-
       ognized name argument because errno is set to [EINVAL] in this case.

       Since -1 is a valid return value for  the  pathconf()  and  fpathconf()  functions,
       applications  should  set errno to zero before calling them and check errno only if
       the return value is -1.

       For the case of {SYMLINK_MAX}, since both pathconf()  and  open()  follow  symbolic
       links, there is no way that path or fildes could refer to a symbolic link.

FUTURE DIRECTIONS
       None.

SEE ALSO
       confstr()  , sysconf() , the Base Definitions volume of IEEE Std 1003.1-2001, <lim-
       its.h>, <unistd.h>, the Shell and Utilities volume of IEEE Std 1003.1-2001

COPYRIGHT
       Portions of this text are reprinted and reproduced in electronic form from IEEE Std
       1003.1,  2003  Edition,  Standard  for Information Technology -- Portable Operating
       System Interface (POSIX), The Open Group Base Specifications Issue 6, Copyright (C)
       2001-2003  by  the  Institute  of Electrical and Electronics Engineers, Inc and The
       Open Group. In the event of any discrepancy between this version and  the  original
       IEEE  and The Open Group Standard, the original IEEE and The Open Group Standard is
       the  referee  document.  The  original  Standard  can   be   obtained   online   at
       http://www.opengroup.org/unix/online.html .



IEEE/The Open Group                  2003                         FPATHCONF(P)

Generated by $Id: phpMan.php,v 4.49 2006/02/26 13:18:18 chedong Exp $ Author: Che Dong
On Apache/1.3.37 (Unix) mod_throttle/3.1.2 FrontPage/5.0.2.2635 mod_psoft_traffic/0.2 mod_ssl/2.8.28 OpenSSL/0.9.8b
Under GNU General Public License
2009-01-07 21:39 @38.103.63.55 Crawled by CCBot/1.0 (+http://www.commoncrawl.org/bot.html)
Valid XHTML 1.0!Valid CSS!