Variables 内核&x27;s全局变量初始化

Variables 内核&x27;s全局变量初始化,variables,initialization,kernel,global,minix,Variables,Initialization,Kernel,Global,Minix,我正在尝试更改Minix203中的调度机制。出于某种原因,我需要全局变量 unsigned short QuantTime[3] = {1,1,1}; 我把它放在/usr/src/kernel/proc.c文件中,然后添加 extern unsigned short QuantTime[3]; 到/usr/src/kernel/proc.h 我进行了一个syscall,它从数组中获取值,但数组似乎保持初始化为0,即使我用1初始化它 这个系统调用工作得很好,因为使用另一个系统调用,我可以在这个

我正在尝试更改Minix203中的调度机制。出于某种原因,我需要全局变量

unsigned short QuantTime[3] = {1,1,1};
我把它放在/usr/src/kernel/proc.c文件中,然后添加

extern unsigned short QuantTime[3];
到/usr/src/kernel/proc.h

我进行了一个syscall,它从数组中获取值,但数组似乎保持初始化为0,即使我用1初始化它

这个系统调用工作得很好,因为使用另一个系统调用,我可以在这个数组中设置值,然后他们再次读取这些值,以获得预期的结果

我将这样进行系统调用: 测试程序->\u syscall->\u taskcall->在/usr/src/kernel/system.c中,我正在获取值

那么我如何初始化这个数组呢

extern int var = 0;
int main(void)
{
 var = 10;
 return 0;
}
当extern与一个变量一起使用时,它只被声明而不被定义。
但是,作为一个例外,当使用初始化声明外部变量时(如在您的案例中),它也被视为变量的定义。

似乎在其他地方出了问题。我使用了Minix2.0.3的新版本,并且不再使用此阵列

所以答案是:“它应该正常工作”?这对我来说没有意义。。。那么,初始化变量的外部会生成一个副本吗?