Unix高级环境编程笔记-2--基本系统数据类型
2014-02-10 00:56
417 查看
本文内容摘自《Unix高级环境编程》第二版,如有错误,请指明,谢谢!
同时本文参考FreeBSD的sys/types.h文件对基本系统数据类型作进一步了解。
Unix系统的sys/types.h文件定义了某些与实现相关的数据类型,称为基本系统数据类型(primitive system data type)。这些数据类型都是用C的typedef来定义,并且都是大多数都是以_t结尾的。下面将列出部分基本系统数据类型。
数据类型 说明 FreeBSD中定义说明
caddr_t 核心地址 定义为 char * 类型
clock_t 时钟滴答计数器 定义为 __clock_t,每秒钟的时间滴答数为 CLOCKS_PER_SEC(FreeBSD中,此定义在time.h)
comp_t 压缩的时钟滴答数 定义在 sys/acct.h中,为 uint16_t
dev_t 设备号(主和次) 定义为 __dev_t,设备号或 struct cdev
fd_set 文件描述符集 定义在 sys/select.h 中,为 struct fd_set,可参考 select 系统调用。
fpos_t 文件位置 定义在 stdio.h 中,为 __off_t 类型
gid_t 用户组ID 定义为 __gid_t 类型
ino_t i节点编号 定义为 __ino_t 类型
mode_t 文件类型,文件创建模式 定义为 __mode_t 类型
nlink_t 目录项的连接计数器 定义为 __nlink_t 类型
off_t 文件大小和偏移量,带符号 定义为 __off_t 类型,还定义 uoff_t(__uint64_t),表示无符号
pid_t 进程IP和进程组ID 定义为 __pid_t 类型
ptrdirr_t 两指针相减的结果 定义在 sys/stddef.h 中,定义为 __ptrdiff_t 类型
rlim_t 资源限制 定义为 __rlim_t 类型
sig_atomic_t 能原子访问的数据类型 与CPU架构相关,对i386,定义在 i386/include/signal.h 中
sigset_t 信号集 定义在 sys/select.h 和 sys/signal.h 中,均为 __sigset_t
size_t 对象字节数大小,不带符号 定义为 __size_t 类型
ssize_t 函数返回字节数大小,带符号 定义为 __ssize_t 类型
time_t 日历时间的计时器 定义为 __time_t 类型,与CPU架构相关
uid_t 数值用户ID 定义为 __uid_t 类型
wchar_t 能表示所有不同的字符码 在 stddef.h stdlib.h wchar.h 中均有定义,定义为 __wchar_t,而__wchar_t 定义在 sys/_types.h 中,定义为 __ct_rune_t,而 __ct_rune_t 定义为 int
在FreeBSD中,以上基本系统数据类型中,__XXX_t 基本上与CPU架构有关,如 i386,则定义在 i386/include/_types.h 中,但并非所有的 __XXX_t 类型都是这样,如 __wchar_t 就不是。
同时本文参考FreeBSD的sys/types.h文件对基本系统数据类型作进一步了解。
Unix系统的sys/types.h文件定义了某些与实现相关的数据类型,称为基本系统数据类型(primitive system data type)。这些数据类型都是用C的typedef来定义,并且都是大多数都是以_t结尾的。下面将列出部分基本系统数据类型。
数据类型 说明 FreeBSD中定义说明
caddr_t 核心地址 定义为 char * 类型
clock_t 时钟滴答计数器 定义为 __clock_t,每秒钟的时间滴答数为 CLOCKS_PER_SEC(FreeBSD中,此定义在time.h)
comp_t 压缩的时钟滴答数 定义在 sys/acct.h中,为 uint16_t
dev_t 设备号(主和次) 定义为 __dev_t,设备号或 struct cdev
fd_set 文件描述符集 定义在 sys/select.h 中,为 struct fd_set,可参考 select 系统调用。
fpos_t 文件位置 定义在 stdio.h 中,为 __off_t 类型
gid_t 用户组ID 定义为 __gid_t 类型
ino_t i节点编号 定义为 __ino_t 类型
mode_t 文件类型,文件创建模式 定义为 __mode_t 类型
nlink_t 目录项的连接计数器 定义为 __nlink_t 类型
off_t 文件大小和偏移量,带符号 定义为 __off_t 类型,还定义 uoff_t(__uint64_t),表示无符号
pid_t 进程IP和进程组ID 定义为 __pid_t 类型
ptrdirr_t 两指针相减的结果 定义在 sys/stddef.h 中,定义为 __ptrdiff_t 类型
rlim_t 资源限制 定义为 __rlim_t 类型
sig_atomic_t 能原子访问的数据类型 与CPU架构相关,对i386,定义在 i386/include/signal.h 中
sigset_t 信号集 定义在 sys/select.h 和 sys/signal.h 中,均为 __sigset_t
size_t 对象字节数大小,不带符号 定义为 __size_t 类型
ssize_t 函数返回字节数大小,带符号 定义为 __ssize_t 类型
time_t 日历时间的计时器 定义为 __time_t 类型,与CPU架构相关
uid_t 数值用户ID 定义为 __uid_t 类型
wchar_t 能表示所有不同的字符码 在 stddef.h stdlib.h wchar.h 中均有定义,定义为 __wchar_t,而__wchar_t 定义在 sys/_types.h 中,定义为 __ct_rune_t,而 __ct_rune_t 定义为 int
在FreeBSD中,以上基本系统数据类型中,__XXX_t 基本上与CPU架构有关,如 i386,则定义在 i386/include/_types.h 中,但并非所有的 __XXX_t 类型都是这样,如 __wchar_t 就不是。
相关文章推荐
- UNIX环境高级编程学习笔记(七)系统数据文件和信息
- UNIX环境高级编程学习之第六章系统数据文件和信息-修改第四章实现的Shell的“ls -l”功能
- UNIX环境高级编程之第6章:系统数据文件和信息-习题
- UNIX环境高级编程学习之第六章系统数据文件和信息-实现uid to name
- Unix环境高级编程-系统数据文件和信息
- 1 Unix/Linux平台上编程的 基本系统数据类型
- UNIX环境高级编程学习之第六章系统数据文件和信息-取所有用户名和UID, GID
- (四) 一起学 Unix 环境高级编程(APUE) 之 系统数据文件和信息
- UNIX环境高级编程学习之第六章系统数据文件和信息-取所有组名、GID
- UNIX环境高级编程学习之第六章系统数据文件和信息-GID To GroupName
- Unix高级环境编程笔记-1--Unix标准化和Unix系统
- UNIX环境高级编程-第6章- 系统数据文件和信息
- UNIX环境高级编程学习之第六章系统数据文件和信息 用链表的形式读出一个服务器的远程用户登入登出信息
- UNIX环境高级编程之第6章:系统数据文件和信息
- 标准IO库、系统数据文件和信息 - UNIX环境高级编程-第5、6章
- UNIX环境高级编程 第6章 系统数据文件和信息
- UNIX环境高级编程——第六章—系统数据文件和信息
- UNIX环境编程学习笔记(3)——文件I/O之内核 I/O 数据结构
- UNIX环境高级编程笔记之文件I/O
- Unix环境高级程序设计入门--文件系统的相关编程(上)