2017-11-13 16 views
1

私は当初、OS X/macOSのカーネルモジュールでgetpid()を使用しようとしていましたが、私のkextがカーネル内で動作しているプロセスのPID(プロセスID)を取得する方法はありますか?私が使用できる既存の関数や変数はありますか?Macカーネル拡張コードでどのように現在のプロセスIDを取得しますか?

+0

https://stackoverflow.com/questions/41676/is-there-a-way-of-getting-the-process-id-of-my-c-applicationを参照してください。これはunistd.hで利用可能です。 – mattias

+0

@AndrewHenleなぜあなたは私が既にGoogleにそれをgoogleしていないなら、これを投稿してライブラリに掘り下げると思いますか#facepalm – Anurag

+1

[Googleで "getpid()on mac"を検索しているので、(https://www.google。 com/search?q = getpid()+ on + mac)は非常に最初の結果として返されます[Mac 'getpid(2)' manページ](http://www.manpages.info/macosx/getpid.2.html )あなたの質問に '#include 'と '#include 'のどちらも記載されていないことを明示しています。 #facepalm確かに。 –

答えて

1

現在実行中のカーネルスレッドが関連付けられているプロセスのPIDを取得するには、proc_selfpid() functionを呼び出します。プロトタイプを取得するにはkextのコードに#include <sys/proc.h>が必要です。 PIDは、もちろん、あなたのコードがシステムコール用の何らかのコールバックのコンテキストで実行されている場合にのみ、ユーザープロセスに対応します。

関連する問題