【发布时间】:2010-07-07 08:29:53
【问题描述】:
我有一个执行某些任务的 Perl 脚本,其中之一是调用 system 命令到 "tar -cvf file.tar....."。
这通常需要一些时间,因此我希望命令行回显进度指示器,例如在 system 调用正在进行时回显到屏幕上的 #。
我一直在做一些挖掘工作,偶然发现了fork。这是最好的方法吗?是否可以分叉 system 命令,然后创建一个 while 循环来检查分叉返回的 $pid 的状态?
我还看到了对 waitpid.. 的引用。我猜我也需要使用它。
fork system("tar ... ")
while ( forked process is still active) {
print #
sleep 1
}
我是不是找错树了?
非常感谢 约翰
【问题讨论】:
-
fork的返回值是子进程ID,如果是父进程,如果是子进程,则为0,如果fork失败,则为undef。请参阅 perldoc -f fork。
标签: perl