私は OSX Mountain Lion を使用しており、PID を使用してプロセスの名前を取得しようとしています。
以下は私が使用しているコードです:
pid_t pid = 10687;
char pathBuffer [PROC_PIDPATHINFO_MAXSIZE] = "";
char nameBuffer [256] = "";
int sizeOfVal = sizeof(nameBuffer);
proc_pidpath(pid, pathBuffer, sizeof(pathBuffer));
proc_name(pid, nameBuffer, sizeof(nameBuffer));
NSLog(@"Path: %s\n Name: %s\n", pathBuffer, nameBuffer);
上記のコードは名前を適切に取得できますが、最初の 15 文字のみを取得し、残りは「無視」します。これは、名前を表示する際の問題ではなく、名前を取得する際の問題であることに注意してください。スタンドアロン アプリケーションで上記のコードをテストしているため、問題はアプリケーションの残りの部分にはありません。また、PID を変更しようとしたことにも注意してください。どの PID を試しても、コードは名前の最初の 15 文字しか取得しません。パス検索は完璧に機能します。
私が間違っていることについて何か考えがある人はいますか?