感谢支持
我们一直在努力

Linux/Unix中的基本系统数据类型

历史上,某些UNIX变量已与某些C数据类型联系在一起,例如,历史上主、次设备号存放在一个16位的短整型中, 8位表示主设备号,另外 8位表示次设备号。但是,很多较大的系统需要用多于 256个值来表示其设备号,于是,就需要有一种不同的技术。


(确实, SVR4用32位表示设备号:14位用于主设备号,18位用于次设备号。)


头文件<sys/types.h>中定义了某些与实现有关的数据类型,它们被称之为基本系统数据类型(primitive system data type)。有很多这种数据类型定义在其他头文件中。在头文件中这些数据类型都是用C的typedef设施来定义的。它们绝大多数都以 _t 结尾。表2-8中列出了本书将使用的基本系统数据类型。


caddr_t                内存地址

clock_t                 时钟滴答计数器(进程时间)
comp_t                 压缩的时钟滴答
dev_t                    设备号(主和次) 
fd_set                   文件描述符集
fpos_t                   文件位置
gid_t                     数值组ID
ino_t i                   节点编号
mode_t                 文件类型,文件创建方式
n1ink_t                目录项的连接计数
off_t                      文件长度和位移量(带符号的)
pid_t                     进程ID和进程组ID(带符号的) 
ptrdiff_t                 两个指针相减的结果(带符号的)
r1im_t                   资源限制
sig_atomic_t        能原子地存取的数据类型
sigset_t                 信号集
size_t                    对象(例如字符串)长度(不带符号的)
ssize_t                  返回字节计数的函数(带符号的)
time_t                   日历时间的秒计数器( 1.10节)
uid_t                     数值用户ID

wchar_t                能表示所有不同的字符码




用这种方式定义了这些数据类型后,在编译时就不再需要考虑随系统不同而变的实施细节,在本书中涉及到这些数据类型的地方,我们会说明为什么使用它们。


自《Unix高级环境编程》

赞(0) 打赏
转载请注明出处:服务器评测 » Linux/Unix中的基本系统数据类型
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏