程序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