OSX Mountain Lion'dayım ve PID kullanarak bir işlemin adını almaya çalışıyorum. Ancak bu sadece ilk 15 karakteri alır vePID'den ad al?
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);
yukarıdaki kod düzgün adı almak yapabiliyor, gerisini "yok sayar":
aşağıdaki
kullanıyorum kodudur. Bunun adın görüntülenmesiyle ilgili bir sorun olmadığını, ancak 'un'u aldığını unutmayın. Yukarıdaki kodu, bağımsız bir uygulamada test ettiğim için sorun, uygulamamın geri kalanıyla ilgili değil. Ayrıca, PID'yi değiştirmeyi denedim, fakat PID'yi denediğimden bağımsız olarak, yalnızca ismin ilk 15 karakterini alır. Yol alma işlemi mükemmel çalışır.Yanlış yaptığım şey hakkında herhangi bir fikri olan var mı?
, ben biraz daha tuhaflık buldu. Belirtilen arabellek uzunluğu 32 bayttan azsa, ad kısa olsa bile (ve 31 bayt arabelleğine sığacak şekilde) dizeye hiçbir şey eklenmeyecektir. – charliehorse55