程序14-34 linux/include/sys/types.h
1 #ifndef _SYS_TYPES_H
2 #define _SYS_TYPES_H
3
4 #ifndef _SIZE_T
5 #define _SIZE_T
6 typedef unsigned int size_t; // 用于对象的大小(长度)。
7 #endif
8
9 #ifndef _TIME_T
10 #define _TIME_T
11 typedef long time_t; // 用于时间(以秒计)。
12 #endif
13
14 #ifndef _PTRDIFF_T
15 #define _PTRDIFF_T
16 typedef long ptrdiff_t;
17 #endif
18
19 #ifndef NULL
20 #define NULL ((void *) 0)
21 #endif
22
23 typedef int pid_t; // 用于进程号和进程组号。
24 typedef unsigned short uid_t; // 用于用户号(用户标识号)。
25 typedef unsigned char gid_t; // 用于组号。
26 typedef unsigned short dev_t; // 用于设备号。
27 typedef unsigned short ino_t; // 用于文件序列号。
28 typedef unsigned short mode_t; // 用于某些文件属性。
29 typedef unsigned short umode_t; //
30 typedef unsigned char nlink_t; // 用于连接计数。
31 typedef int daddr_t;
32 typedef long off_t; // 用于文件长度(大小)。
33 typedef unsigned char u_char; // 无符号字符类型。
34 typedef unsigned short ushort; // 无符号短整数类型。
35
36 typedef unsigned char cc_t;
37 typedef unsigned int speed_t;
38 typedef unsigned long tcflag_t;
39
40 typedef unsigned long fd_set; // 文件描述符集。每比特代表1个描述符。
41
42 typedef struct { int quot,rem; } div_t; // 用于DIV操作。
43 typedef struct { long quot,rem; } ldiv_t; // 用于长DIV操作。
44
// 文件系统参数结构,用于ustat()函数。最后两个字段未使用,总是返回NULL指针。
45 struct ustat {
46 daddr_t f_tfree; // 系统总空闲块数。
47 ino_t f_tinode; // 总空闲i节点数。
48 char f_fname[6]; // 文件系统名称。
49 char f_fpack[6]; // 文件系统压缩名称。
50 };
51
52 #endif
53