
#include <unistd.h> long fpathconf(int filedes, int configvar);
fpathconf determines the value of a configuration variable that
is associated with a file descriptor. filedes is the file
descriptor. configvar is the configuration variable.
configvar can be one of the following symbols that are defined in
<unistd.h>. The values that fpathconf returns are listed
with each symbol.
_PC_LINK_MAX
filedes references a directory, and
fpathconf returns the maximum number of links
possible for the directory.
_PC_MAX_CANON
filedes refers to a character special file for a
terminal.
_PC_MAX_INPUT
filedes refers to a character special file for a
terminal.
_PC_NAME_MAX
NULL for filenames stored as strings.
This limit is for names that do not specify any directories.
_PC_PATH_MAX
NULL for pathnames stored as
strings.
_PC_PIPE_BUF
fpathconf returns the value for the file
itself. For directories, fpathconf returns the value for FIFO
special files that exist or can be created under the specified
directory. For other kinds of files, an errno of
EINVAL is stored.
_PC_CHOWN_RESTRICTED
chown is restricted.
For directories, fpathconf
returns the value for files, but not necessarily
for subdirectories.
_PC_NO_TRUNC
_PC_VDISABLE
filedes must refer to a character special file
for the terminal.
fpathconf returns the value defined above for the
particular value of configvar. If not successful,
fpathconf returns -1.
fpathconf:
#include <sys/types.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
.
.
.
long result;
char fn[]="temp.file";
int fd;
.
.
.
puts("What is the NAME_MAX limit for the current directory?");
if ((result = fpathconf(fd,_PC_NAME_MAX)) == -1)
if(errno == 0)
puts("There is no limit.");
else perror("fpathconf() error");
else
printf("NAME_MAX is %d\n", result);
.
.
.
pathconf, sysconf
Copyright (c) 1998 SAS Institute Inc. Cary, NC, USA. All rights reserved.