0

stdout の内容を読み取るようにファイル ハンドルを設定しました。availableData を使用してそこからデータを取り出そうとするとハングしますが、アプリがデバイスで手動で実行された場合のみです。Xcode またはシミュレーターを使用して自分のデバイスでアプリを実行すると、期待どおりにデータが取り出され、残りのコードは完全に機能します。何が起こっているのですか?私のコードは以下の通りです:

int pipefd[2];                
pipe(pipefd);
dup2(pipefd[1], STDOUT_FILENO);
close(pipefd[1]);

NSFileHandle *stdoutReader = [[NSFileHandle alloc] initWithFileDescriptor:pipefd[0]];

// this method writes output to stout
int result = [self createOutput:string1:string2];

// code hangs on this next line when app is run manually on device)
NSData *stdoutData = [stdoutReader availableData];

私のデバイスでは、createOutput メソッドの実行が遅くなるので、stdout からデータを取得しようとすると、まだ何もないのではないかと思っています。

4

1 に答える 1

1

iOS 5.1 では stdout への書き込みが許可されないようです。詳細を知りたい方は、有益なブログ投稿をご覧ください: http://spouliot.wordpress.com/2012/03/13/ios-5-1-vs-stdout/

于 2012-09-20T01:03:57.623 に答える