BlueClue's Tech Blog

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2011年11月26日 更新

对于Linux系统编程的学习,不包括做某方面的深入研究的话,个人认为读两本书就已经足够,一本是《Unix\Linux编程实践教程》,国外的经典教材,作者将Linux系统编程的相关内容分门别类划分的非常条理,将难以理解的Linux系统内部模型和交互过程做了3D建模,非常直观的将我们脑子里的谜团揉开、展现、分析,对于一些比较纠结的问题,作者做了恰当有趣的比喻,例如将用户模式和内核模式的切换比作肯特电话亭换衣服变超人,对于概念的讲解简洁明了,尽求达意,不说教,可读性很强;另一本就是圣经级的《UNIX环境高级编程》,在众多同行心目中地位崇高,但是不要被书的名字吓倒,我刚刚读完前三章并翻了翻后面,这本书与高级无关,从基础讲起由浅入深,与第一本书相比要求读者具备较好的C基础,但第一本书每章后面的习题难度也不小,其它暂不作评价。

学习过程从Linux的系统调用着手,如果说系统内核是沟通硬件和软件的中介,那么系统调用就是我们与内核沟通的桥梁,从linux常用工具入手,实现程度和手段不比其源码,只能算是学习到一定阶段的总结性笔记,文中代码只求实现不求最佳,所以只可作为学习研究之用。

2011年11月26日


普通程序与系统编程的区别:编写普通程序时可以认为,程序是直接连接到键盘、显示器、磁盘等设备的,但在进行系统编程时,必须对系统的结构和工作方式有更深的了解。

内核提供服务以便系统程序可以直接访问的系统资源:处理器、输入输出、进程管理、内存、设备、计时器、进程间通信、网络。

常用系统调用,参见:http://www.kernel.org/doc/man-pages/online/dir_section_2.html

常用库函数,参见:http://www.kernel.org/doc/man-pages/online/dir_section_3.html

2011年11月26日


文件操作相关系统调用

open、read、write、creat、lseek、close

 

2011-9-15   Linux编程实践——文件操作里神秘的当前指针

2011-9-30   Linux编程实践——用户登陆注销的记录者

2011-10-24 Linux编程实践——代码实现ac命令

2011-11-2   Linux编程实践——文件I/O缓冲区测试及cat简单实现

2011-11-8   Linux编程实践——head和tail的实现

2011年11月26日


目录及文件属性

rwx,对于文件而言,代表可读、可写、可执行,对于目录而言,目录本身可理解为文件,它记录了所包含文件的索引列表,读写执行对它意味着目录文件本身的读取、写操作对于目录而言就是改变目录内的内容(添加、删除其中的文件或目录)、执行意味着是否可以进入该目录。

相关系统调用和函数

  • opendir、readdir、closedir、seekdir
  • stat
  • chmod、chown、utime
  • rename

2011-1-13  struct dirent的char d_name[1]成员


 

posted on 2011-11-26 14:22  blueclue  阅读(655)  评论(0编辑  收藏  举报