2010-12-11 2 views
2

작은 응용 프로그램에서 터미널 명령 인 drutil erase를 실행하고 있습니다. NSTask을 사용하고 있습니다. 터미널에서이 명령을 실행하면 계속 업데이트되는 ASCII 진행 막대가 표시됩니다. 그러나, 내 NSTask을 사용하여 출력 파이프 또는 오류 파이프에서이 정보를 읽을 수 없습니다. drutil 프로세스의 비율을 얻는 방법에 대해 누구나 알고 있습니까?NSTask의 ASCII 진행률 막대를 읽으십시오

답변

1

asynctask.m을 사용하면 curl의 진행 표시기를 Terminal.app에서 stderr로 인쇄 할 수 있습니다!

이 접근법은 "drutil erase"에도 적용됩니다. NSTask 통해 ASCII 진행 막대를 인쇄

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

아마도 또 다른 방법은 라인 버퍼 프로세스 간 스트림 의사 터미날 대신 파이프를 사용 PseudoTTY.app와 위 fprintf와 라인을 결합하는 것이다.

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

+0

감사합니다. 나는 DiscRecording 프레임 워크를 발견했습니다 ... –