您好,我正在尝试创建一个计数器,它将仅对Linux内核源代码中fork.c中系统调用vfork()的次数进行计数。我正在关注total_forks是如何实现的。Total_forks在Schedul.h中定义。但是我找不到它在哪里被初始化为零。
发布于 2011-02-11 10:11:51
我猜你说的是Linux内核,以及在sched.h中声明并定义了here的变量。它是一个全局变量(在文件作用域中定义,而不是static) -它们被隐式初始化为零。在你自己的代码中试试这个:
#include <stdio.h>
int var;
int main( int argc, char* argv[] ) {
printf( "var is %d\n", var );
return 0;
}发布于 2011-02-11 10:15:35
我不熟悉您正在查看的资源,但有几个想法会浮现在我的脑海中:
当init启动时,可以将其初始化为1。
它可能被初始化为0,因为它在BSS段中;运行时系统知道为变量初始化内存的一部分,并在早期引导时将其提供给‘主’内核进程之前将其全部清除。
https://stackoverflow.com/questions/4964926
复制相似问题