2016-04-10 6 views
0

Posix_spawn() sonucunu iOS ile Xcode hata ayıklama konsoluna göndermek için herhangi bir yol var mı?iOS/Xcode: Outpot posix_spawn() sonucu hata ayıklama konsolu

örnek kod:

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 

cevap

1

Hep posix_spawn() gibi bir fonksiyonun geri dönüş değerini kontrol etmelidir. IOS'ta, alt süreçler oluşturmanıza izin verilmediği için her zaman başarısız olur. Bu gerçek kod ise posix_spawn() Verdiğin adıyla (pwd) bir yürütülebilir için PATH aramaz çünkü

Hatta OS X, o zaman başarısız olur. Bu, yürütülebilir dosyanın mutlak veya göreceli yolu olmalı. PATH'da arama yapan bir varyant olarak posix_spawnp() deneyebilirsiniz.

posix_spawn[p]() öğesinin başarılı olması durumunda, alt işlem varsayılan olarak stdout ve stderr öğelerini devralır, böylece çıktısı ek bir adım olmaksızın konsola gitmelidir.

+0

Teşekkürler. Evet posix_spawn() her zaman bana 1 karıştıracaktır çünkü 0'ın aslında başarı olduğunu unutmuşum. – Zigglzworth