1
A
回答
1
由进程打开文件是由结构files_struct,这是在这个过程中的结构的task_struct
struct task_struct {
...
/* open file information */
struct files_struct *files;
每进程文件描述符表(FDT)管理是在结构files_struct
struct files_struct {
...
struct fdtable __rcu *fdt;
当一个进程试图打开一个文件时,它会发出一个开放的系统调用。这将调用sys_open。这基本上是码流:
sys_open(filename, …)
// 1) copy filename from user space
getname(filename)
strncpy_from_user()
// 2) get first unused file descriptor (will be returned to process)
int fd = get_unused_fd()
struct files_struct *files = current->files
// 3) get file from filesystem
struct file *f = file_open(filename)
open_namei
// lookup operation for filesystem
dentry = cached_lookup or real_lookup
// initializes file struct
dentry_open
// 4) install file returned by filesystem into file descriptor table for the process
fd_install
current->files->fd[fd] = file
的过程中得到回报的索引文件的描述符表为打开的文件。
相关问题
- 1. 套接字描述符与文件描述符
- 2. C++文件描述符(套接字)isopen()?
- 3. Linux套接字描述符
- 4. 需要获取套接字描述符
- 5. Linux服务器套接字 - 错误的文件描述符
- 6. 为什么此套接字/文件描述符分配无效?
- 7. 检查套接字文件描述符是否可用?
- 8. node.js获取套接字的文件描述符?
- 9. 如何检索升压asio套接字文件描述符
- 10. 的memcpy()修改客户端套接字文件描述符
- 11. Linux内核 - 套接字文件描述符关闭位置
- 12. 套接字不工作的文件描述符
- 13. select()如何等待常规文件描述符(非套接字)?
- 14. Python套接字。 OSERROR:[错误9]错误的文件描述符
- 15. 错误的文件描述符关闭Boost套接字
- 16. 带有BSD套接字的错误文件描述符
- 17. 使用close()套接字(C++)的错误文件描述符
- 18. Linux套接字文件描述符通常适用于散列
- 19. 在Linux 2.6支持套接字文件描述符吗posix aio?
- 20. java数据报套接字的文件描述符
- 21. 通过互联网套接字传递文件描述符
- 22. 在python中更改套接字的文件描述符
- 23. 无法获取文件描述符从零MQ ZMQ_SERVER套接字
- 24. 管理指向套接字文件描述符的指针
- 25. Linux套接字错误文件描述符
- 26. 在Linux中创建新线程是否重复文件描述符和套接字描述符?
- 27. Unix域套接字传递文件描述符 - sendmsg:传输端点未连接
- 28. 通过UNIX域套接字发送文件描述符,并选择()
- 29. 有多少文件描述符可以选择()在python套接字中管理?
- 30. C编程:调用recv()更改我的套接字文件描述符?