我正在尝试改变Minix203中的调度机制。我出于某种原因需要全局变量
unsigned short QuantTime[3] = {1,1,1};
我把它放在/usr/src/kernel/proc.c文件中,然后添加
extern unsigned short QuantTime[3];
到/usr/src/kernel/proc.h
我做了一个从数组中获取值的系统调用,但是即使我用1初始化它,数组仍然保持初始化为0.
系统调用运行良好,因为使用另一个,我可以在此数组中设置值,并再次读取它们以获得预期结果。
我以这种方式进行系统调用: 测试程序 - > _syscall - > _taskcall - >在/usr/src/kernel/system.c中我得到了值
如何初始化此数组?
答案 0 :(得分:0)
extern int var = 0;
int main(void)
{
var = 10;
return 0;
}
当extern与变量一起使用时,它只声明未定义。 但是作为一个例外,当一个extern变量被初始化声明时(就像你的情况一样),它也被视为变量的定义。
答案 1 :(得分:0)
似乎其他地方出了问题。我拿了一个新版本的minix 2.0.3并没有更多的麻烦这个阵列。