fpathconf man page on Manjaro

Man page or keyword search:  
man Server   11224 pages
apropos Keyword Search (all sections)
Output format
Manjaro logo
[printable version]

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

PROLOG
       This  manual  page is part of the POSIX Programmer's Manual.  The Linux
       implementation of this interface may differ (consult the	 corresponding
       Linux  manual page for details of Linux behavior), or the interface may
       not be implemented on Linux.

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 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. Implementations shall support all of the	 vari‐
       ables  listed  in the following table and may support others. The vari‐
       ables 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	       │ 4,7	      │
       │{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	      │
       │{POSIX2_SYMLINKS}	    │ _PC_2_SYMLINKS	       │ 4	      │
       │{POSIX_ALLOC_SIZE_MIN}	    │ _PC_ALLOC_SIZE_MIN       │ 10	      │
       │{POSIX_REC_INCR_XFER_SIZE}  │ _PC_REC_INCR_XFER_SIZE   │ 10	      │
       │{POSIX_REC_MAX_XFER_SIZE}   │ _PC_REC_MAX_XFER_SIZE    │ 10	      │
       │{POSIX_REC_MIN_XFER_SIZE}   │ _PC_REC_MIN_XFER_SIZE    │ 10	      │
       │{POSIX_REC_XFER_ALIGN}	    │ _PC_REC_XFER_ALIGN       │ 10	      │
       │{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	      │
       │_POSIX_TIMESTAMP_RESOLUTION │ _PC_TIMESTAMP_RESOLUTION │ 1	      │
       └────────────────────────────┴──────────────────────────┴──────────────┘
   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 unspeci‐
	   fied whether an implementation supports an association of the vari‐
	   able name with the specified 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  maximum length of a relative pathname that would not cross
	   any mount points when the specified directory is the working direc‐
	   tory.

	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 directory.

	8. If  path or fildes refers to a directory, it is unspecified whether
	   an implementation 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 maximum length of the string that a symbolic	link  in  that
	   directory can contain.

       10. If  path  or	 fildes	 des  does  not refer to a regular file, it is
	   unspecified whether an implementation supports  an  association  of
	   the	variable  name	with  the specified file. If an implementation
	   supports such an association for other than	a  regular  file,  the
	   value returned is unspecified.

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 is described in <limits.h>	 as  a
       maximum	or minimum value and the variable has no limit for the path or
       file descriptor, both pathconf() and fpathconf() shall return −1	 with‐
       out  changing errno.  Note that indefinite limits do not imply infinite
       limits; see <limits.h>.

       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() 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 implementa‐
       tion's <limits.h> or <unistd.h>.

       If the variable corresponding to name is dependent  on  an  unsupported
       option, the results are unspecified.

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.

       EOVERFLOW
	      The value of name is _PC_TIMESTAMP_RESOLUTION and the resolution
	      is larger than {LONG_MAX}.

       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 vari‐
	      able name with the specified file.

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

       ENAMETOOLONG
	      The  length  of  a  component  of	 a  pathname  is  longer  than
	      {NAME_MAX}.

       ENAMETOOLONG
	      The length of a pathname exceeds {PATH_MAX}, or pathname resolu‐
	      tion  of	a symbolic link produced an intermediate result with a
	      length that 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 names an existing file that is
	      neither a directory nor a symbolic link to a directory,  or  the
	      path  argument  contains	at least one non-<slash> character and
	      ends with one or more trailing <slash> characters and  the  last
	      pathname	component  names  an  existing	file that is neither a
	      directory nor a symbolic link to a directory.

       The fpathconf() function shall fail if:

       EINVAL The value of name is not valid.

       EOVERFLOW
	      The value of name is _PC_TIMESTAMP_RESOLUTION and the resolution
	      is larger than {LONG_MAX}.

       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 vari‐
	      able name with the specified file.

       The following sections are informative.

EXAMPLES
       None.

APPLICATION USAGE
       Application  developers	should	check  whether	an  option,  such   as
       _POSIX_ADVISORY_INFO,  is supported prior to obtaining and using values
       for related variables such as {POSIX_ALLOC_SIZE_MIN}.

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

       For example, {NAME_MAX} frequently changes between System  V  and  BSD-
       based  file  systems;  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 appropriate privileges are in place.

       The  value  returned  for the variable {PATH_MAX} indicates the longest
       relative pathname that could be given if the specified directory is the
       current	working	 directory of the process. 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. Note that imple‐
       mentations are allowed to accept pathnames longer than {PATH_MAX} bytes
       long,  but  are not allowed to return pathnames longer than this unless
       the user specifies a larger buffer using a  function  that  provides  a
       buffer size argument.

       The  value  returned  for  the  variable	 _POSIX_CHOWN_RESTRICTED  also
       applies to directories 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 vari‐
       ables are potentially more volatile and are not	guaranteed  to	remain
       constant	 throughout  the  lifetime  of	the  process.  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	fpath‐
       conf() functions return −1 without changing errno.  This can be distin‐
       guished from the case of giving an unrecognized 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.

       It  was the intention of IEEE Std 1003.1d‐1999 that the following vari‐
       ables:

	      {POSIX_ALLOC_SIZE_MIN}		    {POSIX_REC_INCR_XFER_SIZE}
	      {POSIX_REC_MAX_XFER_SIZE}		     {POSIX_REC_MIN_XFER_SIZE}
	      {POSIX_REC_XFER_ALIGN}

       only applied to regular files, but Note 10 also permits	implementation
       of  the advisory semantics on other file types unique to an implementa‐
       tion (for example, a character special device).

       The [EOVERFLOW] error  for  _PC_TIMESTAMP_RESOLUTION  cannot  occur  on
       POSIX-compliant file systems because POSIX requires a timestamp resolu‐
       tion no larger than one second. Even on 32-bit  systems,	 this  can  be
       represented without overflow.

FUTURE DIRECTIONS
       None.

SEE ALSO
       chown(), confstr(), sysconf()

       The Base Definitions volume of POSIX.1‐2008, <limits.h>, <unistd.h>

       The Shell and Utilities volume of POSIX.1‐2008, getconf

COPYRIGHT
       Portions	 of  this text are reprinted and reproduced in electronic form
       from IEEE Std 1003.1, 2013 Edition, Standard for Information Technology
       --  Portable  Operating	System	Interface (POSIX), The Open Group Base
       Specifications Issue 7, Copyright (C) 2013 by the Institute of Electri‐
       cal  and	 Electronics  Engineers,  Inc  and  The	 Open Group.  (This is
       POSIX.1-2008 with the 2013 Technical Corrigendum	 1  applied.)  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.unix.org/online.html .

       Any typographical or formatting errors that appear  in  this  page  are
       most likely to have been introduced during the conversion of the source
       files to man page format. To report such errors,	 see  https://www.ker‐
       nel.org/doc/man-pages/reporting_bugs.html .

IEEE/The Open Group		     2013			 FPATHCONF(3P)
[top]

List of man pages available for Manjaro

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net