1 #include <unistd.h> 2 #include <limits.h> 3 #include <errno.h> 4 #include <sys/limits.h> 5 6 long 7 pathconf(const char *path, int name) 8 { 9 #pragma ref path 10 11 switch(name) 12 { 13 case _PC_LINK_MAX: 14 return LINK_MAX; 15 case _PC_MAX_CANON: 16 return MAX_CANON; 17 case _PC_MAX_INPUT: 18 return MAX_INPUT; 19 case _PC_NAME_MAX: 20 return NAME_MAX; 21 case _PC_PATH_MAX: 22 return PATH_MAX; 23 case _PC_PIPE_BUF: 24 return PIPE_BUF; 25 case _PC_CHOWN_RESTRICTED: 26 #ifdef _POSIX_CHOWN_RESTRICTED 27 return _POSIX_CHOWN_RESTRICTED; 28 #else 29 return -1; 30 #endif 31 case _PC_NO_TRUNC: 32 #ifdef _POSIX_NO_TRUNC 33 return _POSIX_NO_TRUNC; 34 #else 35 return -1; 36 #endif 37 case _PC_VDISABLE: 38 #ifdef _POSIX_VDISABLE 39 return _POSIX_VDISABLE; 40 #else 41 return -1; 42 #endif 43 } 44 errno = EINVAL; 45 return -1; 46 } 47 48 long 49 fpathconf(int fd, int name) 50 { 51 #pragma ref fd 52 53 return pathconf(0, name); 54 } 55 56