Variables 内核&x27;s全局变量初始化
我正在尝试更改Minix203中的调度机制。出于某种原因,我需要全局变量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初始化它 这个系统调用工作得很好,因为使用另一个系统调用,我可以在这个
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的新版本,并且不再使用此阵列 所以答案是:“它应该正常工作”?这对我来说没有意义。。。那么,初始化变量的外部会生成一个副本吗?