草庐IT

[apue] 文件中的空洞

空洞的概念linux上普通文件的大小与占用空间是两个概念,前者表示文件中数据的长度,后者表示数据占用的磁盘空间,通常后者大于前者,因为需要一些额外的空间用来记录文件的某些统计信息或附加信息、以及切分为块的数据信息(通常不会占用太多)。文件占用空间也可以小于文件尺寸,此时文件内部就存在空洞了。所谓空洞其实就是没有分配存储空间的数据块,当访问这些数据块时,系统返回0,就如同读到空文件一般,当写这些块时,系统再实地分配对应的存储空间。其实这个和内存中的虚址地址与物理地址的概念非常相似——操作系统可以预分配一大块内存地址,这个地址只是一段连续的数字,用来保证虚拟地址不会被其它人占用,而对应的物理地址只

[apue] 标准 I/O 库那些事儿

前言标准IO库自1975年诞生以来,至今接近50年了,令人惊讶的是,这期间只对它做了非常小的修改。除了耳熟能详的printf/scanf,回过头来对它做个全方位的审视,看看到底优秀在哪里。打开关闭要想使用IO流就必需打开它们。三个例外是标准输入stdin、标准输出stdout、标准错误stderr,它们在进入main时就准备好了,可以直接使用,与之对应的文件描述符分别是STDIN_FILENO/STDOUT_FILENO/STDERR_FILENO。除此之外的流需要打开才能使用:FILE*fopen(constchar*restrictpath,constchar*restrictmode);

[apue] 标准 I/O 库那些事儿

前言标准IO库自1975年诞生以来,至今接近50年了,令人惊讶的是,这期间只对它做了非常小的修改。除了耳熟能详的printf/scanf,回过头来对它做个全方位的审视,看看到底优秀在哪里。打开关闭要想使用IO流就必需打开它们。三个例外是标准输入stdin、标准输出stdout、标准错误stderr,它们在进入main时就准备好了,可以直接使用,与之对应的文件描述符分别是STDIN_FILENO/STDOUT_FILENO/STDERR_FILENO。除此之外的流需要打开才能使用:FILE*fopen(constchar*restrictpath,constchar*restrictmode);

[apue] Unix 系统数据文件那些事儿

前言Unixlike系统和windows的最大区别就是有一套标准的系统信息数据文件,一般存放在/etc/目录下,并且提供了一组近似的接口访问和查询信息,这些基础设施让系统管理看起来井井有条,下面就来盘点一下。总览下面这个表列出了unix系统常用的几种数据文件:信息类别文件路径结构查询遍历口令文件/etc/passwdpasswdgetpwnam/getpwuidsetpwent/getpwent/endpwent阴影口令/etc/shadowspwdgetspnamsetspent/getspent/endspent组文件/etc/groupgroupgetgrname/getgrgidset

[apue] Unix 系统数据文件那些事儿

前言Unixlike系统和windows的最大区别就是有一套标准的系统信息数据文件,一般存放在/etc/目录下,并且提供了一组近似的接口访问和查询信息,这些基础设施让系统管理看起来井井有条,下面就来盘点一下。总览下面这个表列出了unix系统常用的几种数据文件:信息类别文件路径结构查询遍历口令文件/etc/passwdpasswdgetpwnam/getpwuidsetpwent/getpwent/endpwent阴影口令/etc/shadowspwdgetspnamsetspent/getspent/endspent组文件/etc/groupgroupgetgrname/getgrgidset
12