Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
fpathconf(2)			 System	Calls			  fpathconf(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	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.	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	   |
       +---------------------------+------------------------+--------------+
       |{ACL_ENABLED}		   | _PC_ACL_ENABLED	    | 10	   |
       +---------------------------+------------------------+--------------+
       |{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	   |
       +---------------------------+------------------------+--------------+
       |{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 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 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 association 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 im-
	   plementation	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 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	is the
	   maximum length of the string	that a symbolic	link in	that directory
	   can contain.

       10. If  path  or	 fildes	refers to a file or directory in a file	system
	   that	supports ACLs, the value returned is the bitwise inclusive  OR
	   of  the  following flags associated with ACL	types supported	by the
	   file	system;	otherwise 0 is returned.

	   _ACL_ACE_ENABLED	   The file system supports ACE	ACLs.

	   _ACL_ACLENT_ENABLED	   The file system supports UFS	aclent ACLs.

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  pathconf() needs to use path	to determine the value of name
       and pathconf() does not support the association of name with  the  file
       specified  by  path,  or	if the process did not have appropriate	privi-
       leges to	query the file specified by path,  or  path  does  not	exist,
       pathconf() returns -1 and errno is set to indicate the error.

       If  fpathconf()	needs to use fildes to determine the value of name and
       fpathconf() does	not support the	association  of	 name  with  the  file
       specified by fildes, or if fildes is an invalid file descriptor,	fpath-
       conf() returns -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 <limits.h> or <unistd.h>.

ERRORS
       The pathconf() function will fail if:

       EINVAL	       The value of name is not	valid.

       ELOOP	       A loop exists in	symbolic links encountered during res-
		       olution of the path argument.

       The fpathconf() function	will fail if:

       EINVAL	       The value of name is not	valid.

       The pathconf() function may fail	if:

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

       EINVAL	       An  association of the variable name with the specified
		       file is not supported.

       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 resolu-
		       tion of the path	argument, the length  of  the  substi-
		       tuted 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	may fail if:

       EBADF	       The fildes argument is not a valid file descriptor.

       EINVAL	       An association of the variable name with	the  specified
		       file is not supported.

USAGE
       The {SYMLINK_MAX} variable applies only to the fpathconf() function.

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       +-----------------------------+-----------------------------+
       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       +-----------------------------+-----------------------------+
       |Interface Stability	     |Standard			   |
       +-----------------------------+-----------------------------+
       |MT-Level		     |Async-Signal-Safe		   |
       +-----------------------------+-----------------------------+

SEE ALSO
       confstr(3C), limits.h(3HEAD), sysconf(3C), attributes(5), standards(5)

SunOS 5.10			  10 Sep 2004			  fpathconf(2)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | USAGE | ATTRIBUTES | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=fpathconf&sektion=2&manpath=SunOS+5.10>

home | help