现在的位置: 首页 > 综合 > 正文

《Linux程序设计第四版》第三章文件操作 读书笔记(二)

2019年07月18日 ⁄ 综合 ⁄ 共 527字 ⁄ 字号 评论关闭

/**三个比较重要的设备文件  */
(1)/dev/console
   系统控制台
(2)/dev/tty
   如果每个进程有一个控制终端的话,特殊文件/dev/tty就是这个控制终端的别名(逻辑设备)
   虽然/dev/console只有一个,但是它却可以通过/dev/tty/访问许多不同的物理设备
(3)/dev/null
   空设备,所有写向这个设备的输出都将被丢弃,读这个设备文件会理解返回一个文件尾标志

/**库函数  */
   针对输入输出操作直接使用底层的系统调用效率非常低,主要因为:
(1)使用系统调用会影响系统系统的性能。因为执行系统调用的时候,Linux必须从运行的用户代码切换到执行内核代码,再返回用户代码,因此系统调用的开销比函数调用大的多。所谓要减少这种开销,应该:
    a)在程序中减少系统调用的次数
    b)增加每次系统调用完成的工作
(2)硬件会限制对底层系统调用一次所能读写的数据块的大小。
库函数由此产生,是一些有函数构成的集合。

关于用户空间,库函数、系统调用、内核、设备驱动程序和硬件设备的关系,参见《Linux程序设计》P82页的图片阐述。


用户空间的用户程序通过库函数调用系统调用,系统调用通过内核中的设备驱动程序达到对硬件设备的控制。

抱歉!评论已关闭.