2. Unix标准

2.2.1   ISO C

2. Unix标准
图2-1 ISO C标准定义的头文件

2.2.2 IEEE POSIX

头文件 说明
<aio.h> 异步I/O
<cpio.h> cpio归档值
<dirent.h> 目录项
<dlfcn.h> 动态链接
<fcntl.h> 文件控制
<fnmath.h> 文件名匹配类型
<glob.h> 路径名模式匹配与生成
<grp.h> 组文件
<iconv.h> 代码集变换实用程序
<langinfo.h> 语言信息常量
<monetary.h> 货币类型与函数
<netdb.h> 网络数据库操作
<nl_types.h> 消息类
<poll.h> 投票函数
<pthread.h> 线程
<pwd.h> 口令文件
<regex.h> 正则表达式
<sched.h> 执行调度
<semapohore.h> 信号量
<strings.h> 字符串操作
<tar.h> tar归档值
<termios.h> 终端I/O
<unistd.h> 符号常量
<wordexp.h> 字扩充类型
<arpa/inet.h> 因特网定义
<net/if.h> 套接字本地接口
<netinet/in.h> 因特网地址族
<netinet/tcp.h> 传输控制协议定义
<sys/mman.h> 存储管理声明
<sys/select.h> select函数
<syd/socket.h> 套接字接口
<sys/stat.h> 文件状态
<sys/statvfs.h> 文件系统信息
<sys/times.h> 进程时间
<sys/types.h> 基本系统数据类型
<sys/un.h> UNIX域套接字定义
<sys/utsname.h> 系统名
<sys/wait.h> 进程控制

2.5.1 ISO C限制

  所有编译时限制都定义在<limits.h>,这些限制常量在一个给定系统中并不会改变.
比如:

名称 典型值
CHAR_BIT 8
CHAR_MIN -128
CHAR_MAX 127
INT_MIN -2147483648
INT_MAX 2147483647
MB_LEN_MAX 在一个多字节字符常量中的最大字节数 6

2.5.4 运行时限制

  某些限制值可能会更改,因为它们与文件和目录相关联,必须在运行时确定.

#include <unistd.h>

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

  图2-10 列出了sysconf函数所使用的name参数,它用于标识系统限制,以_SC_ 开始的常量用作标识运行时限制的sysconf参数.
  最后两个函数之间的差别是一个用路径名作为其参数,另一个则取文件描述符作为参数.
2. Unix标准
  对于pathconf的参数pathnamefpathconf的参数fd有很多限制。如果不满足其中任一个限制,则结果是未定义的。
包括:

  1. _PC_MAX_CANON_PC_MAX_INPUT引用的文件必须是终端文件。
  2. _PC_LINK_MAX_PC_TIMESTAMP_RESOLUTION引用的文件可以是文件或目录。如果是目录,则返回值用于目录本身,而不用于目录内的文件名项。
  3. _PC_NAME_MAX引用的文件必须是目录,返回值用于该目录中的文件名
  4. _PC_PATH_MAX引用的文件必须是目录。当所指定的目录是工作目录时,返回的是相对路径名的最大长度(而我们大部分情况下想要的是绝对路径名的最大长度)
    2. Unix标准

2.8 基本系统数据类型

头文件<sys/types.h>中定义了一些和实现会用到的数据类型,他们被约定俗成,被称为基本系统数据类型,还有很多在其他头文件中,这些数据类型都是通过typedef方式来定义的。

2. Unix标准

上一篇:信息安全系统设计与实现第四周:《Unix/Linux系统编程》第七、八章学习笔记


下一篇:转载爱哥自定义View系列--Canvas详解