7

私のアプリケーションは、mach IPC メッセージを受信し、発信者に応答を返します。マッハの発信者がいて、発信者port(msgh_remote_port)を知りたいですPIDPID特定のマッハポートをリッスンするマッハポートでOSXを見つけることはできますか?

4

3 に答える 3

3

マッハ ポートはプロセスに直接関連付けられているのではなく、タスクに関連付けられています。その後、タスクは bsd プロセス構造に関連付けられます。タスクのポートを照会するには、mach_port_names 関数を使用できます。すべての開いているマッハ ポートを取得するには、すべてのタスクを反復処理し、上記の関数を使用します。

別のアプローチは、procfs ファイルシステムを使用することです。procfs ファイルシステムは、fuse ファイルシステムの上に実装され、手動でシステムにインストールする必要があります。これはオープンソースのソリューションです。procfs ファイルシステムがインストールされると、ファイル /proc/proc-id/task/ports にアクセスして、タスクのポートを照会できます。http://osxbook.com/book/bonus/chapter11/procfs/をご覧ください。

于 2012-02-19T21:09:51.003 に答える