Sono su OSX Mountain Lion e sto cercando di recuperare il nome di un processo usando il suo PID.Ottieni il nome da PID?
Quello che segue è il codice che sto usando:
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);
Il codice di cui sopra è in grado di recuperare il nome correttamente, tuttavia recupera solo i primi 15 caratteri e "ignora" il resto. Nota questo non è un problema con la visualizzazione del nome, ma con recuperando esso. Il problema non è con il resto della mia applicazione poiché sto testando il codice sopra in un'applicazione standalone. Nota anche che ho provato a cambiare il PID, ma indipendentemente da quale PID provo, il codice recupera solo i primi 15 caratteri del nome. Il recupero dei percorsi funziona perfettamente.
Qualcuno ha qualche idea su quello che sto facendo male?
Come ho studiato questo problema, ho trovato un po 'più stranezza. Se la lunghezza del buffer specificata è inferiore a 32 byte, nulla verrà inserito nella stringa, anche se il nome è breve (e si adatta al buffer da 31 byte) – charliehorse55