我正在使用OSX Mountain Lion操作系统,尝试通过进程ID获取进程名称。
以下是我正在使用的代码:
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个字符。路径检索完美运行。
有人对我做错了什么有什么想法吗?