【发布时间】:2016-05-23 17:08:19
【问题描述】:
在 MINIX 3.2.1 中,我想在 VFS 服务器中创建一个新的系统调用,它会被赋予一个文件名作为参数并打印这个特定文件的 inode号码。
所以为了通过文件名检索文件的 inode,我想使用默认的系统调用:
int stat(char *name,struct stat *buffer)
http://minix1.woodhull.com/manpages/man2/stat.2.html
在我的新系统调用处理程序的主体中
int mycall_1(void);
在`/usr/src/servers/vfs/misc.c里面
但是当我测试新的系统调用时,在应该调用 stat 系统调用的地方,它实际上不会,而是打印消息:
sys_call: ipc mask denied SENDREC from 1 to 1
经过一番研究,我发现这可能是因为VFS服务器试图向自己发送消息,因为stat实际上是在VFS服务器内部实现的,所以ipc掩码拒绝了这个sendrec()调用。所以我必须编辑一些配置文件,以便为这种通信提供正确的权限。
但我不确定我的理解是否正确,也不知道应该编辑哪个文件以赋予适当的权限。所以,如果有人能在这个问题上启发我,我将不胜感激。
提前致谢。
【问题讨论】:
标签: system-calls stat minix