2010-12-11 27 views
2

在一個小應用程序中,我正在運行一個終端命令drutil erase。我正在使用NSTask。在終端中執行此命令時,它會顯示一個不斷更新的ASCII進度條。但是,我無法使用我的NSTask在輸出管或錯誤管道中讀取此信息。有沒有人有一個想法如何獲得drutil的過程的百分比?閱讀NSTask的ASCII進度條

回答

1

使用asynctask.m,您可以在Terminal.app中將curl的進度指示器打印到stderr!

此方法也適用於「drutil擦除」。然而

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

也許另一種方式來打印通過NSTask一個ASCII進度條是將線fprintf中結合上面PseudoTTY.app,其使用僞ttys中代替管材行緩衝進程間流。

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

+0

感謝您的幫助! 順便說一句,我找到了DiscRecording框架... – 2011-02-07 13:29:36