Mono ベースのプロジェクトではvn_getpath関数 (カーネル フレームワークの一部として vnode.h で定義)を使用する必要があるため、インポートには PInvoke を使用します。しかし、DllImport 属性でどのライブラリを参照する必要があるのか わかりません。「LibC」と「/System/Library/Frameworks/Kernel.framework/Kernel」を試しましたが、今のところうまくいきません。
関数がどのライブラリにあるか知っている人はいますか?
私の最終的な目標
は、システムで実行されているすべてのプロセスの詳細を収集することです。sysctlを使用してプロセスを列挙します。sysctl 呼び出しから、プロセス ID とプロセスの実行可能ファイルの VNode を取得できます。ここで、プロセスの実行可能ファイルへのファイル システム パスを取得する必要があります。
vn_getpath とfcntl (F_GETPATH コマンドを使用) を見ています。
vn_getpath で、DllImport 属性を使用してインポートできるライブラリがわかりません。
fcntl に関しては、LibC で見つけましたが、関数には (vnode ではなく) ファイル記述子が必要です。
一般に、vnode からファイル システム パスを取得する方法について、任意の数の中間ステップを使用してアイデアが必要です。
ティア
・イヴァン