2016-04-10 28 views
0

有沒有辦法將posix_spawn()的結果輸出到iOS的Xcode調試控制檯?iOS/Xcode:Outpot posix_spawn()結果調試控制檯

示例代碼:

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 

回答

1

你應該總是喜歡posix_spawn()功能檢查返回值。在iOS上,它總是會失敗,因爲您不允許創建子流程。

即使在OS X上,如果這是你真正的代碼,那麼它會失敗,因爲posix_spawn()不會搜索PATH你給的名字(pwd)的可執行文件。這必須是可執行文件的絕對路徑或相對路徑。您可以嘗試posix_spawnp()作爲搜索PATH的變體。

posix_spawn[p]()成功的情況下,默認情況下,子進程將繼承stdout和stderr,所以它的輸出應該轉到控制檯而不需要其他步驟。

+0

謝謝。是的,posix_spawn()返回1,這讓我困惑,因爲我忘記0實際上是成功的。 – Zigglzworth