我需要使用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/

10-13 03:02