私はOSX Mountain Lionに所属しており、PIDを使用してプロセスの名前を取得しようとしています。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文字だけを取得します。パス検索は完全に機能します。
誰かが私が間違っていることについてのアイデアはありますか?
を、Iもう少し奇妙なことを発見した。指定されたバッファ長が32バイト未満の場合、名前が短くても(31バイトバッファに収まる)、文字列には何も配置されません。 – charliehorse55