Linux程序设计-文件操作

重要的设备文件

1./dev/console:系统控制台,错误信息和诊断信息通常会发到这个设备
2./dev/tty:如果一个进程有控制终端的话,那么他就是这个控制终端的别名
3./dev/null:文件为空的设备

系统调用和驱动程序

1.系统调用:对文件和设备进行访问和控制的函数
2.操作系统的核心部分,即内核是一组设备驱动程序。为了向用户提供一个一致的接口,设备驱动程序封装了所有与硬件相关的特性,硬件的特有功能通过ioctl系统调用来实现。
3.访问设备驱动程序的底层函数(系统调用):
1).open打开文件或设备
2).read从打开的文件或设备里读数据
3).write向文件或设备里写数据
4).close关闭文件或设备
5).ioctl 把控制信息传递给设备驱动程序

库函数

 使用系统调用的效率非常低:

1.执行系统调用时,发生系统由运行用户代码切换到执行内核代码,然后在返回用户代码
2.硬件会限制对底层系统调用一次所能读写的数据块大小
为了给设备和磁盘文件提供更高层的接口,Linux提供了一系列的标准函数库,系统中文件函数与用户、设备驱动程序、内核和硬件的关系

底层文件访问

每个运行中的程序被称为进程,他有一些与之关联的文件描述符,0:标准输入 1:标准输出 2:标准错误

write系统调用

include<unistd.h>

include<stdlib.h>

int main()
{
if ((write(1,"Here is some data\n",18) != 18))
write(2,"A write error has occurred on file descriptor 1\n",46);
exit(0);
}

posted @ 2021-03-09 11:40  菲阳公社  阅读(76)  评论(0)    收藏  举报