2016-04-10 3 views
0

Gibt es eine Möglichkeit, das Ergebnis von posix_spawn() an die Xcode Debug-Konsole mit iOS auszugeben?iOS/Xcode: Outpot posix_spawn() Ergebnis zur Debug-Konsole

Beispielcode:

int status = 0; 
int success = 0; 

pid_t pid; 
char *argv[] = { 
    "/usr/bin/pwd", 
    NULL 
}; 

success = posix_spawn(&pid, argv[0], NULL, NULL, argv, environ); 
waitpid(pid, &status, WEXITED); 

NSLog(@"Success: %i, Status: %i, PID: %d", success, status, pid); 
//LOG RESULT- Success: 1, Status: 0, PID: 1 

Antwort

1

Sie sollten immer überprüfen Sie den Rückgabewert einer Funktion wie posix_spawn(). Unter iOS wird es immer fehlschlagen, weil Sie keine Unterprozesse erstellen dürfen.

Auch auf OS X, wenn dies Ihre echten Code ist, scheitern wird es dann, weil posix_spawn() nicht die PATH für eine ausführbare Datei des Namens Sie gab (pwd) nicht suchen. Das muss der absolute oder relative Pfad zur ausführbaren Datei sein. Sie könnten versuchen posix_spawnp() als eine Variante, die die PATH sucht.

In dem Fall, in dem posix_spawn[p]() erfolgreich ist, erbt der Subprozess standardmäßig stdout und stderr, sodass die Ausgabe ohne weitere Schritte an die Konsole gesendet werden soll.

+0

Danke. Ja posix_spawn() gibt 1 die ganze Zeit zurück, was mich verwirrte, weil ich vergessen habe, dass 0 tatsächlich Erfolg ist. – Zigglzworth

Verwandte Themen