fpathconf man page on YellowDog

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

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

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 implementation does not support the associa‐
       tion 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	 indi‐
       cate 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>.

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	 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 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 argument, 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	 vari‐
	      able 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, 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 the appropriate permissions 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
       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  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 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 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.

FUTURE DIRECTIONS
       None.

SEE ALSO
       confstr()   ,   sysconf()   ,   the   Base   Definitions	  volume    of
       IEEE Std 1003.1-2001,  <limits.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)
[top]

List of man pages available for YellowDog

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