读取NSTask的ASCII进度条
在一个小应用程序中,我正在运行终端命令 drutil擦除。我正在使用 NSTask
。当您在终端中执行此命令时,它将向您显示一个不断更新的 ASCII 进度条。但是,我无法使用我的 NSTask
在我的输出管道或错误管道中读取此信息。有谁知道如何获取 drutil 进程的百分比?
In a little app, I'm running a terminal command, drutil erase. I'm using a NSTask
. When you execute this command in Terminal, it will show you an ASCII progress bar which is continuously updated. However, I'm not able to read this information in my outputpipe or errorpipe using my NSTask
. Does anyone has an idea how to to obtain the percentage of drutil's process?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用asynctask.m,您可以将curl的进度指示器打印到Terminal.app中的stderr!
这种方法也适用于“drutil擦除”。
也许通过 NSTask 打印 ASCII 进度条的另一种方法是将上面的 fprintf 行与 PseudoTTY.app 结合起来,它使用伪 tty 而不是管道来进行行缓冲的进程间流。
http://www.cocoadev.com/index.pl?NSTask
Using asynctask.m you can print the progress indicator of curl to stderr in Terminal.app!
This approach should work for "drutil erase" as well.
Perhaps yet another way to print an ASCII progress bar via NSTask would be to combine the fprintf line above with PseudoTTY.app, which uses pseudo-ttys instead of pipes for line-buffered inter-process streams.
http://www.cocoadev.com/index.pl?NSTask