Unix环境高级编程学习笔记(二)

Unix标准化及实现

三种主要的标准:

 ISO C   IEEE POSIX  Single UNIX Specification(XSI)

一层一层递增,IEEE POSIX 是ISO C的超集。XSI 是POSIX的超集。

限制

要想提高软件的可移植性,就必须有限制:

  • 编译时限制
  • 运行时的限制

编译时限制:因为某些限制是固定的,则可以在头文件中定义。

运行时限制:限制是变化的,则必须在函数运行时调用函数取的。

三大标准中的限制

ISO C限制:都是编译时限制,头文件<limits.h>中定义的常量。

POSIX 限制:分为19个不变最小值,不变值:SSIZE_MAX。运行时可增加的值,运行时不变的值,路径名可变值。

这些值有一些定义在头文件中,有一些则可定义或者不定义。那些可定义和不定义的值,不能在编译中实现,则只能在运行中得到,POSIX提供三个函数:sysconf,pathsysconf和fpathconf.

XSI限制:不变最小值,数值限制,运行时不变值。

运行时限制调用的三个函数

#include《unistd.h》
long sysconf(int name);
long pathconf(const char *pathname, int name);
long fpathconf(int filedes, int name);

后两个函数的区别是,一个用路径名作参数,一个用文件描述符作为参数。

sysconf的参数:以_SC_开头

pathconfi和fpathconf的参数:以_PC_开头(其中的一些参数)

 

原文地址:https://www.cnblogs.com/yestreen/p/3049418.html