我最近在minix中遇到了一个关于我写的系统调用的一个非常奇怪的问题。基本上,代码在main()函数中运行良好,并且调用执行它应该做的事情。但是,如果我将代码放在函数中并从main()中调用该函数,它将失败。这是一个例子:
void do_foo()
{
message m;
_syscall(FS_PROC_NR, FOO, &m);
}
int main(int argc, char* argv[])
{
/* works */
message m;
_syscall(FS_PROC_NR, FOO, &m);
/* does not work */
do_foo();
}
似乎如果从代码中调用函数,它应该像在main函数中编写代码一样。我在这里想念的是什么?