sysconf、pathconf和fpathconf函数

来源:互联网 发布:链轮设计参数计算软件 编辑:程序博客网 时间:2024/05/24 01:20
      头文件:#include<unistd.h>

函数原型:

long sysconf(int name); 

long pathconf(const char *pathname, int name); 

long fpathname(int filedes, int name); 

所有函数返回值:若成功则返回相应值;若出错则返回-1.

后两个函数的差别在于一个用路径名作为其参数,另一个则取文件描述符则为参数。

表2-10中列出了sysconf函数所使用的name参数,用于标识系统限制。以_SC_开始的长廊用作标示运行时限制的sysconf参数。表2-11列出了pathconf和fpathconf函数为标示系统限制所使用的name参数。以_PC_开始的常量用作标示运行时限制的pathconf或fpathconf的参数。

三个函数的返回值说明如下:

1,如果name不是表2-10和2-11的第三列中的一个合适的常量,则所有这三个函数都会返回-1,并将errno设置为EINVAL;

2,有些name可以返回变量的值(返回值大于等于0),或者返回-1,这表示该值是不确定的,此时并不改变errno的值;

3,_SC_CLK_TCK的返回值是每秒钟的时钟滴答数,以用于times函数的返回值。

对于pathconf的参数pathname以及fpathconf的参数filedes有一些限制。如果不满足其中任何一个限制,则结果是未定义的。

1,_PC_MAX_CANON和_PC_MAX_INPUT所音乐呢的文件必须是终端文件;

2,_PC_LINK_MAX所引用的文件可以使文件或目录。如果是目录,则返回值用于目录本身(而不是用于目录内的文件名项);

3,_PC_FILESIZEBITS和_PC_NAME_MAX所引用的文件必须是目录,返回值用于该目录中的文件名;

4,_PC_PATH_MAX引用的文件必须是目录。当所指定的目录是工作目录时,返回值是相对路径名的最大长度;

5,_PC_PIPE_BUF所引用的文件必须是管道、FIFO或目录。在管道或者FIFO情况下,返回值是对所引用的管道或FIFO的限制值。对于目录,返回值是对在该目录中创建的任一FIFO的限制值;

6,_PC_SYMLINK_MAX所引用的文件必须是目录。返回值是该目录中符号链接可能包含的字符串的最大长度。 

sysconf、pathconf和fpathconf函数 - 白杨 - 白杨

sysconf、pathconf和fpathconf函数 - 白杨 - 白杨

对于选项的处理与对限制的处理类似。Single UNIX Specification定义了三种处理方法:

sysconf、pathconf和fpathconf函数 - 白杨 - 白杨

sysconf、pathconf和fpathconf函数 - 白杨 - 白杨

sysconf、pathconf和fpathconf函数 - 白杨 - 白杨

0 0
原创粉丝点击