コマンドラインツールの標準出力を自分のプログラムにリダイレクトするために setStandardOutput で NSTask を使用しているので、それを処理に使用できます。これはうまく機能しますが、副次的な結果として、プログラムを実行するとツールの出力が出力として表示されます。指定した NSPipe オブジェクトにのみ移動するように、完全にリダイレクトしたいと考えています。
これは可能ですか?以下の例は出力の標準出力を示していますが、標準エラーでもこれを行いたいと考えています。
NSTask *ls=[[NSTask alloc] init];
NSPipe *pipe=[[NSPipe alloc] init];
NSFileHandle *handle;
NSString *string;
[ls setLaunchPath:@"/bin/ls"];
[ls setArguments:[NSArray arrayWithObjects:@"-l",@"/System",nil]];
[ls setStandardOutput:pipe];
handle=[pipe fileHandleForReading];
[ls launch];
string=[[NSString alloc] initWithData:[handle readDataToEndOfFile]
encoding:NSASCIIStringEncoding];