【发布时间】:2015-12-28 21:42:49
【问题描述】:
我想在 proc.c(内核模式)中创建一个文件并向其中写入一些内容,但提供的系统调用(打开)是用于 user.h 标头中的用户模式,我不能在 proc 中包含 user.h .c,在proc.c中有没有其他方法可以做到这一点?
【问题讨论】:
我想在 proc.c(内核模式)中创建一个文件并向其中写入一些内容,但提供的系统调用(打开)是用于 user.h 标头中的用户模式,我不能在 proc 中包含 user.h .c,在proc.c中有没有其他方法可以做到这一点?
【问题讨论】:
使用 sysfile.c 中函数 sys_open() 中的“open”系统调用代码,并自己分配“path”和“omode”变量。
(如果您想避免代码重复,您可以编辑 sys_open 以使用“path”、“omode”变量调用另一个函数,并在 proc.c 中的代码中使用该函数)
【讨论】:
你应该研究内核文件系统。 在那里你会看到相关的内核函数。
具体来说,您需要create、writei、iput 函数。
您还需要begin_trans 和comnit_trans(因为您正在写作)。
【讨论】: