<分区>
我需要使用 aplay
播放一个 wave 文件。但是,我的波形文件只有几秒钟的长度。所以我打算在一段时间内循环播放它们。 aplay
似乎没有循环选项。从我的 C 文件创建一个子进程,使用 popen()
回放工作正常。但困难的是,我无法监控 wave 文件播放何时完成,以便我可以重新开始。
popen("aplay WaveFile","r");
我如何知道此命令何时完成播放?
提前致谢!
<分区>
我需要使用 aplay
播放一个 wave 文件。但是,我的波形文件只有几秒钟的长度。所以我打算在一段时间内循环播放它们。 aplay
似乎没有循环选项。从我的 C 文件创建一个子进程,使用 popen()
回放工作正常。但困难的是,我无法监控 wave 文件播放何时完成,以便我可以重新开始。
popen("aplay WaveFile","r");
我如何知道此命令何时完成播放?
提前致谢!
最佳答案
来自popen
手册页:
The
pclose()
function waits for the associated process to terminate and returns the exit status of the command as returned bywait4(2)
.
如果你不想在pclose
时被阻止,你可以试试non-blocking reads在 popen
返回的管道上,直到你得到一个 EOF,这意味着进程已经终止。
关于c - 我如何在 Linux 中等待子进程完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51295094/