【问题标题】:read ASCII progress bar of NSTask读取 NSTask 的 ASCII 进度条
【发布时间】:2010-12-11 12:27:40
【问题描述】:

在一个小应用程序中,我正在运行一个终端命令 drutil erase。我正在使用NSTask。当您在终端中执行此命令时,它会显示一个不断更新的 ASCII 进度条。但是,我无法使用NSTask 在我的输出管道或错误管道中读取此信息。有谁知道如何获得 drutil 进程的百分比?

【问题讨论】:

    标签: objective-c nstask


    【解决方案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 进度条的另一种方法是将上面的 fprintf 行与 PseudoTTY.app 结合起来,后者使用伪 ttys 而不是管道用于行缓冲的进程间流。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-03
      • 1970-01-01
      • 2018-07-04
      • 1970-01-01
      相关资源
      最近更新 更多