Estoy en OSX Mountain Lion y estoy tratando de recuperar el nombre de un proceso utilizando su PID.Obtener el nombre de PID?
El siguiente es el código que estoy utilizando:
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);
El código anterior es capaz de recuperar el nombre correctamente, sin embargo, sólo recupera los primeros 15 caracteres y "ignora" el resto. Tenga en cuenta que esto no es un problema con la visualización del nombre, pero con recuperando. El problema no está en el resto de mi aplicación, ya que estoy probando el código anterior en una aplicación independiente. También tenga en cuenta que traté de cambiar el PID, pero independientemente de qué PID intente, el código solo recupera los primeros 15 caracteres del nombre. La recuperación de ruta funciona perfectamente.
¿Alguien tiene alguna idea sobre lo que estoy haciendo mal?
Como he investigado este tema, encontré algo más raro. Si la longitud del búfer especificado es inferior a 32 bytes, no se colocará nada en la cadena, incluso si el nombre es corto (y cabría en el búfer de 31 bytes) – charliehorse55