pathconf
When your machine allows different files to have different values for a file system parameter, you can use the functions in this section to find out the value that applies to any particular file.
These functions and the associated constants for the parameter argument are declared in the header file unistd.h.
This function is used to inquire about the limits that apply to the file named filename.
The parameter argument should be one of the ‘_PC_’ constants listed below.
The normal return value from
pathconf
is the value you requested. A value of-1
is returned both if the implementation does not impose a limit, and in case of an error. In the former case,errno
is not set, while in the latter case,errno
is set to indicate the cause of the problem. So the only way to use this function robustly is to store0
intoerrno
just before calling it.Besides the usual file name errors (see File Name Errors), the following error condition is defined for this function:
EINVAL
- The value of parameter is invalid, or the implementation doesn't support the parameter for the specific file.
This is just like
pathconf
except that an open file descriptor is used to specify the file for which information is requested, instead of a file name.The following
errno
error conditions are defined for this function:
EBADF
- The filedes argument is not a valid file descriptor.
EINVAL
- The value of parameter is invalid, or the implementation doesn't support the parameter for the specific file.
Here are the symbolic constants that you can use as the parameter
argument to pathconf
and fpathconf
. The values are all
integer constants.
_PC_LINK_MAX
LINK_MAX
.
_PC_MAX_CANON
MAX_CANON
.
_PC_MAX_INPUT
MAX_INPUT
.
_PC_NAME_MAX
NAME_MAX
.
_PC_PATH_MAX
PATH_MAX
.
_PC_PIPE_BUF
PIPE_BUF
.
_PC_CHOWN_RESTRICTED
_POSIX_CHOWN_RESTRICTED
.
_PC_NO_TRUNC
_POSIX_NO_TRUNC
.
_PC_VDISABLE
_POSIX_VDISABLE
.
_PC_SYNC_IO
_POSIX_SYNC_IO
.
_PC_ASYNC_IO
_POSIX_ASYNC_IO
.
_PC_PRIO_IO
_POSIX_PRIO_IO
.
_PC_FILESIZEBITS
_PC_REC_INCR_XFER_SIZE
POSIX_REC_INCR_XFER_SIZE
.
_PC_REC_MAX_XFER_SIZE
POSIX_REC_MAX_XFER_SIZE
.
_PC_REC_MIN_XFER_SIZE
POSIX_REC_MIN_XFER_SIZE
.
_PC_REC_XFER_ALIGN
POSIX_REC_XFER_ALIGN
.