再次复习APUE
来源:互联网 发布:nginx虚拟主机是什么 编辑:程序博客网 时间:2024/04/29 13:51
重看APUE,做些笔记。
没心没肺的玩了一个国庆,唉,不忍直视。
从现在开始,好好的看书。争取拿到Offer。
硬链接和软链接:
每个文件都有名字,这个是我们用户空间可以看到的,我们把它称为目录。每个目录都绑定着一个i节点信息,即指向着一个具体的文件。
所以硬链接指的就是,有两个目录同时绑定到这个i节点上,代表的是同一个文件。所以我们删掉了这个硬链接,其实只表示指向这个i节点的数量-1,不会删除这个文件 ,只有当i节点数目的指向数量减少为0的时候,才会删除这个文件。
那么硬链接有什么实用之处呢? 可以备份重要的文件啊,可以把相对重要的文件都保存起来,这样即使不小心删除了当前目录,只要备份的硬链接没有删掉,文件就还在。
那有什么缺点呢? 在一个文件系统中,i节点信息都是分配好的,有各自的管理方法,所以硬链接不能跨文件系统 ,并且不能链接目录,否则陷入死循环。
所以出现了软链接:
软连接就是个快捷方式,即这个链接文件的内容,注意,这里是内容,是数据区的数据指向了另一个文件的目录。而不是i节点信息,所以目录被删,则链接失效。 但是这样可以跨系统了。因为本质上就是通过了中间变量。
文件IO
无数次的看文件IO了。
open,read ,write.等等函数,都是系统调用层面上的,都是无缓冲的对文件进行操作。所以对象是文件描述符。
而 fopen,fread,fwrite等等就是C库上面的,属于用户空间的,具有缓冲,是流处理函数。 那么什么是缓冲,打个比方。你要写数据到文件中,而文件位于磁盘上。那么有缓冲就是先把你的数据写入内存,然后等到把内存填满之后呢再一次性写入文件上,这个就是全缓冲。而行缓冲就是写一行,或者是遇到了换行符号就写。对于一般的文件,都是全缓冲,对于终端设备,就是行缓冲了。
所以我们使用的还是带有缓冲的,这样可以避免每次都涉及到系统调用,浪费时间。所以这里分为三种方式去读写文件。
一,一个一个字符的去读写。 getc, fgetc
二,一行一行字符的去读写。gets,fgets
三,上面两种都不实用的情况,即整个去读取文件。 fread,fwrite。
- 再次复习APUE
- 再次复习背包。。。
- 再次复习java正则表达式
- 再次复习安卓生命周期
- Binary String Matching---KMP算法,再次复习
- 关于MT7620A的DTS的再次复习
- apue
- APUE
- apue
- APUE
- APUE
- 传智播客Linux再次复习概括--绝对需要看哦
- 每日雕蟲一技[2013-04-01]再次复习PL/SQL调试SP步骤
- APUE[ "apue.h" ]
- 复习
- 复习
- 复习
- 复习
- WinDbg解决BHO不加载
- Android 基于位置的开发与百度地图 (二)
- epoll的两种模式详解
- Android基础总结1 ----页面传值和事件监听
- 软工视频——总结
- 再次复习APUE
- java web 项目 推荐目录结构
- Spring.Net+Asp.Net mvc开发移动Web
- JAXB vs XStream
- android一些可用实例2014收藏
- manifest----activity属性
- java内存控制和变量问题
- 如何在视频聊天软件里叠加时间戳
- C语言变量存储类