0
setStandardOutputでNSTaskを使用してコマンドラインツールの標準出力をプログラムにリダイレクトするので、処理に使用できます。これは素晴らしいですが、私のプログラムを実行すると、結果としてツールの出力が出力として表示されます。私は完全にリダイレクトしたいので、指定したNSPipeオブジェクトにのみ行きます。NSTask実行プログラムから標準をブロックする
これは可能ですか?次の例は出力標準出力を示していますが、これも標準エラーでも行いたいと思います。
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];
あなたは実際にサブプロセスとして 'ls'を実行していますか、それともあなたのやりたいことの一例ですか? – trojanfoe
それだけの例(:しかし、私が答えで述べたように、私は問題を解決しました。コメントのために。 – Locksleyu