UNIX标准化及实现之基本系统数据类型
历史上,某些UNIX系统变量已与某些C数据类型联系在一起。例如,历史上主、次设备号一直存放在一个16位的短整型中,8位表示主设备号,另外8位表示次设备号。但是,很多较大的系统需要用多于256个值来表示其设备号,于是,就需要有一种不同的技术。
头文件<sys/types.h>中定义了某些与实现有关的数据类型,它们被称为基本系统数据类型(primitive system data type)。还有很多这种数据类型定义在其他头文件中。在头文件中,这些数据类型都是用C的typedef功能来定义的。它们绝大多数都以_t结尾。
表1 某些常用的基本系统数据类型
| 类型 | 说明 |
| caddr_t | 核心地址 |
| clock_t | 时钟滴答计数器(进程时间) |
| comp_t | 压缩的时钟滴答 |
| dev_t | 设备号(主和次) |
| fd_set | 文件描述符集 |
| fpos_t | 文件位置 |
| gid_t | 数值组ID |
| ino_t | i节点编号 |
| mode_t | 文件类型,文件创建模式 |
| nlink_t | 目录项的链接计数 |
| off_t | 文件大小和偏移量(带符号的) |
| pid_t | 进程ID和进程组ID(带符号的) |
| ptrdiff_t | 两个指针相减的结果(带符号的) |
| rlim_t | 资源限制 |
| sig_atomic_t | 能原子地访问的数据类型 |
| sigset_t | 信号集 |
| size_t | 对象(例如字符串)大小(不带符号的) |
| ssize_t | 返回字节数的函数(带符号的)(read、write) |
| time_t | 日历时间的秒计数器 |
| uid_t | 数值用户ID |
| wchar_t | 能表示所有不同的字符码 |
用这种方式定义了这些数据类型后,就不再需要考虑因系统而异的程序实现细节。
本篇博文内容摘自《UNIX环境高级编程》(第二版),仅作个人学习记录所用。关于本书可参考:http://www.apuebook.com/。
UNIX标准化及实现之基本系统数据类型的更多相关文章
- UNIX标准化及实现之UNIX标准化、UNIX系统实现、标准和实现的关系以及ISO C标准头文件
一.UNIX标准化 1.ISO C (International Organization for Standardization) 2.IEEE POSIX (Institue of Electri ...
- UNIX标准化及实现之POSIX标准必需头文件
POSIX标准定义的必需头文件 头文件 说明 <dirent.h> 目录项 <fcntl.h> 文件控制 <fnmatch.h> 文件名匹配类型 <glob. ...
- 《UNIX环境高级编程》笔记--UNIX标准化及实现
1.UNIX标准化 1.1.ISO C 1989 年后期,C程序设计语言的ANSI(American National Standards Institute) 标准X3. 15 9-1989得到批准 ...
- (四) 一起学 Unix 环境高级编程(APUE) 之 系统数据文件和信息
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- C#核编之系统数据类型和相应的C#关键字
和任何编程语言一样,C#定义了一组用于表示局部变量.成员变量.返回值以及输入参数的基本数据类型.然而,与其他编程语言不同的是,这些关键字不只是编译器能识别的标记.C#关键字其实是System命名空间中 ...
- UNIX标准化及实现之限制
前言 UNIX系统实现定义了很多幻数和常量,其中有很多已被硬编码(关于硬编码和软编码:http://www.cnblogs.com/chenkai/archive/2009/04/10/1432903 ...
- 第二章:UNIX标准化及实现
本章节介绍个UNIX编程环境的标准化的进展,对ISO C,POSIX和Single UNIX Specification三个主要标准进行了说明 本章后面部分介绍了限制的具体实例. 我学习本章的心得是: ...
- UNIX标准化及实现之标准之间的冲突
就整体而言,这些不同的标准之间配合得相当好.但是我们也很关注它们之间的差别,特别是ISO C标准和POSIX.1之间的差别. ISO C定义了函数clock,它返回进程使用的CPU时间,返回值类型是c ...
- UNIX标准化及实现之选项
POSIX.1的2001版,包括了ISO C标准所指定的各个函数.其接口分成了两类:必需接口和可选接口.可选接口按功能又进一步分成50个区.表1中按它们各自的选项代码总结了没有被弃用的编程接口.选项代 ...
随机推荐
- Android访问C#的WebService要注意的问题
@Overrideprotected String doInBackground(Object... params) { // 根据命名空间和方法得到SoapObject对象 SoapObject s ...
- I.MX6 wm8962 0-001a: DC servo timed out
/******************************************************************************* * I.MX6 wm8962 0-00 ...
- RPi 2B python opencv camera demo example
/************************************************************************************** * RPi 2B pyt ...
- Ruby基础类型,动态特性,代码块
#Ruby内置基础数据类型 NilClass,TureClass,FalseClass,Time,Date,String,Range,Struct,Array,Hash #Numerice 1.分为I ...
- (八)学习MVC之三级联动
1.新建项目,MVC选择基本模板 2.新建类:Model/Student.cs,数据库信息有三个实体:分别是年级.班级和学生. using System; using System.Collectio ...
- HTML5 jQuery图片上传前预览
hTML5实现表单内的上传文件框,上传前预览图片,针刷新预览images,本例子主要是使用HTML5 的File API,建立一個可存取到该file的url,一个空的img标签,ID为img0,把选择 ...
- [转] 三种Python下载url并保存文件的代码
原文 三种Python下载url并保存文件的代码 利用程序自己编写下载文件挺有意思的. Python中最流行的方法就是通过Http利用urllib或者urllib2模块. 当然你也可以利用ftplib ...
- static用法详解
一. 面向过程程序设计 1.静态全局变量 在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量.我们先举一个静态全局变量的例子,如下: //Example 1 #include & ...
- e8_4输出菲波拉契数列的前10项
program fbnq;{输出菲波拉契数列的前10项} var a:..] of integer; i:integer; begin a[]:=; a[]:=; do a[i]:=a[i-]+a[i ...
- Ubuntu 12.04 安装Scrapy爬虫框架
转自:http://www.cnblogs.com/HelloPython/ 亲测有效 根据Scrapy安装指南(http://doc.scrapy.org/en/latest/intro/insta ...