【发布时间】:2016-04-16 21:13:10
【问题描述】:
我是 minix 3.2.1 的新手,我想更改某个系统调用及其输出。例如,当我键入 mkdir Newdirectory 时,我想在屏幕中看到 New dir -> myNewDirectory 755(755 代表访问权限)。我怎样才能做到这一点?
【问题讨论】:
-
这还不够。写更多关于:你尝试了什么,你发现了什么问题,等等。
我是 minix 3.2.1 的新手,我想更改某个系统调用及其输出。例如,当我键入 mkdir Newdirectory 时,我想在屏幕中看到 New dir -> myNewDirectory 755(755 代表访问权限)。我怎样才能做到这一点?
【问题讨论】:
首先您需要找到要修改的正确文件。对于您的示例,您可以通过更改/添加 usr/src/servers/vfs/open.c 文件中的代码来修改 mkdir 命令。如果您查看 open.c 文件,您会发现那里有一个 do_mkdir 函数。您可以使用:
printf("New dir -> %s",fullpath);
do_mkdir 实际上在完整路径数组中具有新目录的名称,因此不必自己创建变量。至于访问权限,您可以使用 S_IRWXU/S_IRWXG/S_IRWXO 查看访问权限(更多信息请访问http://pubs.opengroup.org/onlinepubs/7908799/xsh/sysstat.h.html)。例如,您可以将访问权限存储在整数变量中:
if(bits & S_IRUSR) x = x + 4;
if(bits & S_IWUSR) x = x + 2;
if(bits % S_IXUSR) x = x + 1;
只需为群组和其他人的权利做同样的事情,然后就可以了
请记住,您需要编译文件才能应用更改。转到 usr/src/realeasetools 目录并在终端中使用make hdbootcommand。重新启动,您将看到更改。
【讨论】: