私はデッドロック検出アルゴリズムに取り組んでおり、カーネルレベルのライブラリのみが提供されて#include <linux/somelibrary>
います。getpid()
と同様の現在のプロセスのpidを取得できるカーネルレベルの機能はありunistd.h
ますか?
11476 次
2 に答える
4
この質問はほとんど意味がありません。
カーネルベースのコードを書いていますか? その場合、現在のタスクのタスク構造体 (pid を持つメンバーを含む) を指す "current" マクロを使用して、現在のタスクの pid を取得できます。これは、カーネルコードが「現在のタスク」が意味のあるコンテキスト (つまり、割り込み、タスクレットなどではない) で実行されている場合にのみ機能します。
ユーザー空間のコードを書いているのであれば、システム呼び出しを行う unistd.h (またはそれに含まれるもの) で定義された C ライブラリからのライブラリ呼び出しである getpid を呼び出せない理由はないはずです。そのような理由がある場合は、その理由を説明してください。
Linux でシステム コールを行うのは特に難しいことではありませんが、作成したくないアーキテクチャ固有のコードが含まれます。
于 2009-02-09T23:03:44.070 に答える