Middleware, development tools, realtime operating system
software and services for superior embedded design


Home
QNX Community Resources
QNX Documentation Library
pathconf

pathconf

QNX Software Systems
Developer Resources
Blogs
Board support packages
Foundry27 projects
Forums
Hardware support listing
Online video tutorials
Product documentation
Technical Articles

pathconf()

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_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_PATH_MAX
Maximum number of bytes in a pathname (not including the terminating null).
_PC_PIPE_BUF
Maximum number of bytes that can be written atomically when writing to a pipe.
_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_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_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 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 No
Interrupt handler No
Signal handler Yes
Thread Yes

See also:

chown(), confstr(), errno, fpathconf(), sysconf(), termios

getconf in the Utilities Reference

Understanding System Limits chapter of the Neutrino User's Guide