我的问题是这个问题的延伸:popen创造了一个额外的过程
动机:
1)我的程序需要创建一个tail在文件上执行的子项.我需要逐行处理输出.这就是我使用的popen原因,因为它返回FILE*.我可以很容易地获取单行,做我需要做的事情并打印它.
popen的一个问题是你没有得到孩子的pid(在我的情况下是tail命令).
2)我的程序不应该在孩子完成之前退出.所以我需要做wait; 但没有pid,我不能这样做.
我怎样才能实现这两个目标?
一个可能的(kludge)解决方案:执行execvp("tail -f file> tmpfile")并继续读取tmpfile.不过,我不确定这个解决方案有多好.