Linux文件



------------------------------------
要去访问磁盘的文件,必须通过系统调用来返回一个与该文件相关联的ID,
这个ID就是文件描述符file descriptor

linux操作系统提供了一个open系统调用,
任何进程要去访问一个文件,首先使用这个open打开这个
文件,系统将返回一个编号,及与这个文件相关联的文件描述符
(1)用户程序从用户从用户空间向内核提交了打开申请
(2)操作系统会在内核中去检查请求是否合法,如果合法
在内核中申请打开文件相关联的信息(读写位置,在磁盘中的位置,全用struct file来存储)
并且添加到当前进程的PCB打开文件列表数组中,对应的这个数组
小标及文件描述符
(3)将文件描述符返回非用空间,用户空间接下来对这个文件进行读写就是通过这个编号值

------------------------------------------------------------------------------------------------------------

系统默认为每个进程打开了三个文件:

printf/scanf:
文件描述符值0(标准输入,键盘)
1(标准输出,显示器)
2(标准错误输出,显示器)
相应的宏
STDIN_FILENO
STDOUT_FILENO
STDERR_FILENO




郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。