我正在尝试做一个涉及修改 minix 中的一些内核代码的家庭作业,我遇到了我见过的最奇怪的问题。
我正在修改 pm 服务器上的 alloc.c(对于那些熟悉 minix 的人),并且我在文件顶部添加了一个全局变量:
PUBLIC int logging = 0;
然后稍后我试图在我添加到内核的一个函数中读取变量:
PUBLIC int do_setalloc(void)
{
printf("logging = %i\n", logging");
return (OK);
}
然后我有一个在内核空间之外运行此代码的测试程序:
int main(void)
{
message m;
m.m1_i1 = 1;
m.m1_i2 = 1;
_syscall(MM,69,&m);
return 0;
}
这是此代码运行时的输出:
logging = %i
Printf 实际上并没有用整数的实际值替换 %i 格式,我在这里扯掉我的头发,这个任务很快就要到期了!帮助!