Return the value of a configurable limit
Synopsis:
#include <unistd.h>
long pathconf( const char* path, 
               int name );
 
Arguments:
- path
 
- The name of the file whose limit you want to get.
 
- name
 
- The name of the configurable limit; see below.
 
 
Library:
libc
Use the -l c option to
qcc
to link against this library.
This library is usually included automatically.
 
Description:
The pathconf() function returns a value of a configurable limit 
indicated by name, which is associated with the filename given in 
path.
Configurable limits are defined in <confname.h>, and include at
least the following values:
- _PC_2_SYMLINKS
 
- 1 if symbolic links can be created, 0 if not.
  
  
 
- _PC_ALLOC_SIZE_MIN
 
- Minimum number of bytes of storage actually allocated for any portion of a file.
  
  
 
- _PC_ASYNC_IO
 
- Defined if asynchronous I/O is supported for the file.
  
  
  
  
 
- _PC_CASE_PRESERVING
 
- (QNX Neutrino 7.0 or later) 1 if the filesystem preserves the case in file names, or 0 if it doesn't.
  If this function indicates an error of EINVAL, you shouldn't make any assumptions about
  the filesystem's behavior.
  
  
  
  
 
- _PC_CASE_SENSITIVE
 
- (QNX Neutrino 7.0 or later) 1 if the filesystem is sensitive to the case in file names, or 0 if it isn't.
  If this function indicates an error of EINVAL, you shouldn't make any assumptions about
  the filesystem's behavior.
  
  
  
  
 
- _PC_CHOWN_RESTRICTED
 
- If defined (not -1), indicates that the use of the
  chown()
  function is restricted to a process with root privileges,
  and to changing the group ID of a file to the effective group ID of the
  process or to one of its supplementary group IDs.
  
  
  
 
- _PC_FILESIZEBITS
 
- Minimum number of bits needed to represent, as a signed integer value, the maximum size of 
  a regular file allowed in the specified directory.
  
  
 
- _PC_LINK_DIR
 
- Defined (not -1) if the filesystem permits the unlinking of a directory.
  
  
 
- _PC_LINK_MAX
 
- Maximum value of a file's link count.
  
  
  
 
- _PC_MAX_CANON
 
- Maximum number of bytes in a terminal's canonical input buffer (edit buffer).
  
  
  
  
  
 
- _PC_MAX_INPUT
 
- Maximum number of bytes in a terminal's raw input buffer.
  
  
  
  
  
 
- _PC_NAME_MAX
 
- Maximum number of bytes in a file name (not including the terminating null).
  
  
  
 
- _PC_NO_TRUNC
 
- If defined (not -1), indicates that the use of pathname components 
  longer than the value given by _PC_NAME_MAX will generate an error.
  
  
 
- _PC_PATH_MAX
 
- Maximum number of bytes in a pathname (including the terminating null).
                
            
            
          
 
- _PC_PIPE_BUF
 
- Maximum number of bytes that can be written atomically when writing to a pipe.
  
  
  
 
- _PC_PRIO_IO
 
- Defined (not -1) if prioritized I/O is supported for the file.
  
  
  
  
 
- _PC_REC_INCR_XFER_SIZE
 
- Recommended increment for file transfer sizes between the _PC_REC_MIN_XFER_SIZE and 
  _PC_REC_MAX_XFER_SIZE values.
  
  
 
- _PC_REC_MAX_XFER_SIZE
 
- Maximum recommended file transfer size.
  
  
 
- _PC_REC_MIN_XFER_SIZE
 
- Minimum recommended file transfer size.
  
  
 
- _PC_REC_XFER_ALIGN
 
- Recommended file transfer buffer alignment.
  
  
 
- _PC_SYMLINK_MAX
 
- Maximum length (in bytes) of a symbolic link name.
  
  
 
- _PC_SYMLOOP_MAX
 
- Maximum length of a symbolic link chain.
    This is the maximum number of symbolic links that can be reliably traversed when resolving a pathname 
    in the absence of a loop.
  
  
 
- _PC_SYNC_IO
 
- Defined (not -1) if synchronous I/O is supported for the file.
  
  
  
  
 
- _PC_VDISABLE
 
- If defined (not -1), this is the character value which can be used to 
  individually disable special control characters in the 
  termios
  control structure.
  
  
  
 
 
Returns:
The requested configurable limit, or -1
if an error occurs
(errno
is set).
 
Errors:
- EACCES
 
- Search permission is denied for a component of path.
 
- EINVAL
 
- The name argument is invalid, or the indicated limit isn't supported.
 
- ELOOP
 
- Too many levels of symbolic links or prefixes.
 
- ENAMETOOLONG
 
- The path argument, or a component of path, is too long.
 
- ENOENT
 
- The file doesn't exist.
 
- ENOSYS
 
- The pathconf() function isn't implemented for the filesystem underlying
  the path specified in path.
 
- ENOTDIR
 
- A component of the path prefix isn't a directory.
 
 
Examples:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main( void )
  {
    long value;
    value = pathconf( "/dev/con1", _PC_MAX_INPUT );
    printf( "Input buffer size is %ld bytes\n",
        value );
    return EXIT_SUCCESS;
  }
 
Classification:
POSIX 1003.1
| Safety: | 
  | 
| Cancellation point | 
Yes | 
| Interrupt handler | 
No | 
| Signal handler | 
Yes | 
| Thread | 
Yes |