2010-12-11 9 views
2

ちょっとしたアプリで、ターミナルコマンドdrutil eraseを実行しています。私はNSTaskを使用しています。ターミナルでこのコマンドを実行すると、継続的に更新されるASCIIプログレスバーが表示されます。しかし、私はNSTaskを使って、私の出力パイプやエラーパイプでこの情報を読むことができません。 drutilのプロセスの割合をどのように取得するか考えている人はいますか?NSTaskのASCIIプログレスバーを読む

答えて

1

asynctask.mを使用すると、curlの進行状況インジケータをTerminal.appのstderrに印刷できます!

このアプローチは "drutil erase"でも有効です。

// asynctask.m code is available at: 
// http://www.cocoadev.com/index.pl?NSPipe 
fprintf(stderr, "\r\033[0K%s", [s UTF8String]); 

おそらくまだNSTask介してASCIIプログレスバーを印刷する別の方法は、ラインバッファリングプロセス間のストリームのための擬似ttyの代わりにパイプを使用PseudoTTY.app、を有する上記関数fprintfラインを結合するであろう。

http://www.cocoadev.com/index.pl?NSTask

+0

ありがとうございました! 私はDiscRecordingフレームワークを見つけました... –

関連する問題