【发布时间】:2009-02-15 21:05:50
【问题描述】:
我正在为我的操作系统期中学习,想知道是否可以得到一些帮助。
谁能解释一下检查以及内核在 open() 系统调用期间做了什么?
谢谢!
【问题讨论】:
-
我认为您需要更具体...内核在该系统调用中做了 lot。
-
+1 表示对这是一项家庭作业持开放态度
我正在为我的操作系统期中学习,想知道是否可以得到一些帮助。
谁能解释一下检查以及内核在 open() 系统调用期间做了什么?
谢谢!
【问题讨论】:
很粗略,你可以想到以下几个步骤:
这个描述对于打开普通文件和/或目录应该是基本正确的,但是对于各种特殊文件,特别是对于设备来说,情况是不同的。
【讨论】:
我会回到教授告诉你的内容 - 在 open() 期间会发生很多事情,这取决于你正在打开的内容(即设备、文件、目录),除非你写了什么教授找,你会扣分。
话虽如此,它主要涉及检查这个打开是否有效(即这个文件是否存在,用户是否有读/写权限等),然后在内核句柄表中分配一个条目跟踪 fd 及其当前文件位置(当然还有其他一些事情)
【讨论】: