こんにちは私は、システムコールvfork()がLinuxカーネルソースのfork.cで呼び出された回数をカウントするカウンタを作成しようとしています。私はtotal_forksの実装方法に従っています。 Total_forksはsched.hで定義されています。しかし、ゼロに初期化された場所を見つけることはできません。forks.cのtotal_forksはどこで初期化されていますか?
2
A
答えて
4
私はあなたが、Linuxカーネルについて話している推測している、と変数はsched.h
でとhere定義を宣言しました。グローバル変数(ファイルスコープで定義され、static
ではなく)です。これらは暗黙的に0に初期化されます。
#include <stdio.h>
int var;
int main(int argc, char* argv[]) {
printf("var is %d\n", var);
return 0;
}
0
は、私はあなたが見ているソースをよく知らないんだけど、心にいくつかの考えスプリングは:あなた自身のコードでこれを試してみてくださいinit
が開始されたときに
それは1に初期化することができます。
BSSセグメント内にあるため、0に初期化される場合があります。ランタイムシステムは、変数のメモリの一部を初期化することを知っており、初期ブート時に 'メイン'カーネルプロセスに渡す前に、変数のすべてをクリアします。
関連する問題
- 1. 初期化されていないグローバル変数はどこで初期化されますか?
- 2. ファンシーボックスの例:ファンシーボックスはどこで初期化されていますか?
- 3. JSPはどこで初期化されますか?
- 4. MSTAPI要求IDはどこで初期化されていますか?
- 5. System.IOUtilsのTPathレコードはどこに初期化されていますか?
- 6. 初期化されていない値は初期化されていますか?
- 7. std :: coutの初期化は保証されていますか?
- 8. これらのvarsはどのように初期化されますか?
- 9. 初期化されていないオブジェクトvs NULLに初期化されたオブジェクト
- 10. lazy valが初期化せずに初期化されているかどうかをチェックする方法は?
- 11. TensorFlowでは、初期化されていない変数を初期化する方法はありますか? TensorFlowで変数を初期化する
- 12. intは常に0に初期化されていますか?
- 13. この関数の初期化されていない値はどこですか?
- 14. arm_rfft_init_q31:cfftメンバーはどのように初期化されていますか?
- 15. スキップリストはどのように初期化されますか?
- 16. このサブスクリプションは初期化されましたか?
- 17. gcc - removal "はこの関数で初期化されていません"警告
- 18. C++ 11は初期化されたメンバフィールドを再初期化しますか?
- 19. 配列はJavaでいつ初期化されますか?
- 20. openglステンシルバッファがゼロで初期化されていませんか?
- 21. ユーザーコントロールで初期化されていませんか?
- 22. Cでは、なぜ0に初期化された変数は "nm"で初期化されていないと報告されますか?
- 23. アクティビティのインスタンス変数はいつ初期化されますか?
- 24. コントローラ内のセッションプロパティはいつ初期化されますか?
- 25. C++:メンバポインタが初期化されていますか?
- 26. Java doubleは0.0に初期化されています
- 27. "EntityCollectionは既に初期化されています。"エラー
- 28. このBackboneビューが初期化されないのはなぜですか?
- 29. 静的変数は特定のスレッドで初期化されていますか?
- 30. glibc:いつ、どこでstdioストリームバッファが割り当てられ、初期化されますか?