2016-04-10 44 views
0

posix_spawn()の結果をiOS搭載のXcodeデバッグコンソールに出力する方法はありますか?iOS/Xcode:コンソールをデバッグするための出力結果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()は、0が実際に成功したことを忘れていたので、私を混乱させた1を常に返します。 – Zigglzworth

関連する問題