OSX Mountain Lion에 있으며 PID를 사용하여 프로세스 이름을 검색하려고합니다. 그러나 그것은 단지 처음 15 개 문자를 검색하고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);
위의 코드를 제대로 이름을 검색 할 수 있습니다, 나머지는 "무시"
다음
내가 사용하고있는 코드입니다. 이름을 표시하는 데는 문제가 없지만 은입니다. 독립형 응용 프로그램에서 위의 코드를 테스트 할 때 문제는 나머지 응용 프로그램과 관련이 없습니다. 또한 PID를 변경하려고 시도했지만 PID에 관계없이 코드에서 이름의 처음 15 자만 검색합니다. 경로 검색은 완벽하게 작동합니다.내가 뭘 잘못하고 있는지에 대한 아이디어가있는 사람이 있습니까?
을, I 더 이상한 것을 발견했다. 지정된 버퍼 길이가 32 바이트보다 작은 경우, 이름이 짧고 (31 바이트 버퍼에 맞을지라도) 문자열에 아무 것도 배치되지 않습니다. – charliehorse55