晚上好,大家好!
我在 minix 3.2.1 上做作业,我被要求创建一个新的系统调用, my_rmdir ,其行为与 rmdir 完全相同,但也会打印已删除目录的名称。另外我应该修改系统的源代码,所以当我给出 rmdir 命令时,系统应该调用我自己的 do_myrmdir <而不是调用 do_rmdir 函数。 / strong>功能。
过去,我使用 mkdir 命令做了同样的功课但是一切都很简单,因为 mkdir 被正确宣布为minix风格并且我做了更改
/usr/src/servers/vfs/proto.h
/usr/src/servers/vfs/open.c
/usr/src/servers/vfs/request.c
/usr/src/servers/vfs/table.c
/usr/include/minix/callnr.h
一切都很顺利。但是现在,我认为由于 NETBSD代码注入,我有点迷失。
此外,重点还在于从头开始创建一个新的系统调用,因为首先我没有这方面的知识,其次我需要进行的更改非常小。
我遇到的首要问题是我无法找到声明原始 do_rmdir 的位置以及它与 rmdir 命令的关联方式。
在 /usr/src/servers/vfs/table.c 文件第58行
do_unlink, /* 40 = rmdir */
让它更加混乱
任何帮助或想法?
如果您需要更多信息,请询问。
我是论坛的新手,我试图正确地问,谢谢你的理解。
答案 0 :(得分:0)
好的,我知道了!
rmdir 命令调用 do_unlink 功能,并根据用户权限,请求 rmdir 或取消关联命令。不同之处在于取消链接可以做一些危险的事情,所以它只能用于管理员。