3

Linuxカーネルでシステムコールがどのように機能するかを理解しようとしています。私が持っている1つの質問は、システムコールを行うプロセスのpidをどのように取得できるかということです。

たとえば、 fs / read_write.cで次のようread()に定義されていると思う呼び出し(同期読み取り)を見ています

ssize_t do_sync_read(struct file *filp, char __user *buf, size_t len, loff_t *ppos)
4

1 に答える 1

8

システムコールコンテキスト(呼び出しプロセスのコンテキスト)では、pidを取得できるフィールドを含むタイプのグローバル変数を確認できますcurrentstruct task_structpid

current->pid現在のタスクコンテキストのpidを取得するために実行してください。

カーネルで定義されたシステムコールの実際のコードを意味していると思います。

于 2012-05-09T21:51:49.227 に答える