《Unix环境高级编程》第一次读书分享会由廖同学主持,主要讲解 文件操作 。 Unix/Linux 提供了这几个系统调用来操作文件:
- open ,操作前先打开文件,获得一个 文件描述符 ( file descriptor );
- read ,从文件指定位置读取数据(传打开文件的描述符);
- write ,将数据写到文件指定位置(传文件描述符);
- lseek ,更新文件当前偏移量,偏移量决定 read 和 write 读写位置;
- close ,操作完毕后关闭文件,回收系统资源,并释放文件描述符;
Unix/Linux 文件操作很简单,无非是打开、关闭、读写和指针移动( lseek ),对吧?尽管如此,简单的东西还是有很多需要考究的地方。
为了提高学习效果,增强每位同学的参与感,我特地安排了课前作业。既然是学习文件操作,那就模仿着开发一个 cat 命令呗。
cat 是一个非常简单的 Unix/Linux 命令,用于读取文件数据,并输出到标准输出。但就这么简单的一个作业,初学者还是很难写好。
那么,实现 cat 命令背后都有哪些门道呢?简单的表象下,又暗藏哪些玄机呢?