我需要使用aplay
播放wave文件。但是,我的wave文件只有几秒长。所以我计划在一段时间内循环播放。aplay
似乎没有循环选项。从我的c文件创建一个子进程使用popen()
回放工作正常。但问题是我无法监控wave文件的回放何时完成,以便重新开始。
popen("aplay WaveFile","r");
如何知道此命令何时完成播放?
提前谢谢!
最佳答案
从popen
手册页:pclose()
函数等待关联进程终止,并返回命令的退出状态,如wait4(2)
返回的。
如果不想在pclose
上被阻止,可以在popen
返回的管道上尝试non-blocking reads,直到获得表示进程已终止的eof。
关于c - 如何在Linux中等待子流程完成,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51295094/