【问题标题】:How can i modify a command in MINIX 3.2.1 so that uses my own system call?如何修改 MINIX 3.2.1 中的命令以使用我自己的系统调用?
【发布时间】:2014-08-11 14:02:19
【问题描述】:

大家晚上好!

我正在 minix 3.2.1 上做作业,我被要求创建一个新的系统调用, my_rmdir,其作用与 rmdir 完全相同,但也会打印已删除目录的名称。另外我应该修改系统的源代码,所以当我给出 rmdir 命令时,系统应该调用我自己的 do_myrmdirdo_rmdir 函数/strong> 函数。

过去,我使用 mkdir 命令完成了相同的作业,但一切都很简单,因为 mkdir 被正确声明为 minix 样式,并且我对 进行了更改p>

/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   */

让事情变得更加混乱

有什么帮助或想法吗?

如果您需要更多信息,请询问。

我是新来的论坛,我试着正确地提问,谢谢你的理解。

【问题讨论】:

    标签: fileserver minix rmdir netbsd


    【解决方案1】:

    好的,我明白了!

    rmdir 命令调用 do_unlink 函数,并根据用户权限,请求 rmdirunlink 命令。不同之处在于 unlink 可以做一些危险的事情,所以它仅供管理员使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-27
      • 1970-01-01
      • 1970-01-01
      • 2015-12-07
      • 2013-02-20
      • 2020-02-22
      相关资源
      最近更新 更多