Linux文件描述符表和文件的关系
1个回答
展开全部
Linux中的文件类型
Linux系统中把一切都看做文件,包括普通文件-、目录文件d、字符设备文件c、块设备文件b、符号链接文件l。文件描述符是内核为了高效管理已被打开的文件所创建的索引(一个非负整数),用于指代已被打开的文件,Linux下所有的的I/O操作的系统调用都是通过文件描述符执行。例如0表示标准输入、1表示标准输出、3表示标准错误
,文件描述符会在这个基础上递增。
文件描述符、文件、进程之间的关系
每个文件描述符都指向一个打开的文件相对应
不同的文件描述符可能指向同一个打开的文件
相同的文件可能被不同的进程打开,也可以在被同一个进程打开多次
文件描述符表: 进程级的列表,也就是用户区的一部分,进程每打开一个文件就会新建一个文件描述符,同时只能通过文件描述符的函数访问,否则进程无法直接对其进行访问。
系统文件表: 系统级的列表,对当前系统的所有进程都共享,每条条目包含文件偏移量、访问模式以及指向它的文件描述符的条目计数
文件系统索引节点表: inode索引节点表(UID、GID、ctime、mtime、atime、读写执行权限、链接数、block位置)
Linux系统中把一切都看做文件,包括普通文件-、目录文件d、字符设备文件c、块设备文件b、符号链接文件l。文件描述符是内核为了高效管理已被打开的文件所创建的索引(一个非负整数),用于指代已被打开的文件,Linux下所有的的I/O操作的系统调用都是通过文件描述符执行。例如0表示标准输入、1表示标准输出、3表示标准错误
,文件描述符会在这个基础上递增。
文件描述符、文件、进程之间的关系
每个文件描述符都指向一个打开的文件相对应
不同的文件描述符可能指向同一个打开的文件
相同的文件可能被不同的进程打开,也可以在被同一个进程打开多次
文件描述符表: 进程级的列表,也就是用户区的一部分,进程每打开一个文件就会新建一个文件描述符,同时只能通过文件描述符的函数访问,否则进程无法直接对其进行访问。
系统文件表: 系统级的列表,对当前系统的所有进程都共享,每条条目包含文件偏移量、访问模式以及指向它的文件描述符的条目计数
文件系统索引节点表: inode索引节点表(UID、GID、ctime、mtime、atime、读写执行权限、链接数、block位置)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询