首先,我使用mpg123远程使用FIFOs实现暂停功能,但现在我想关闭mpg123播放器时,文件自动播放通过。
当前播放的代码是
pid p = fork();
if (p<0)
return;
else if (p==0)
execlp("mpg123", "mpg123", "-R", "--fifo", "aFifo", NULL);
else
system("load test.mp3 > aFifo");
当前,如果文件被播放,则子进程也将继续(如果P==0)将留在那里,MPG123播放器进程将继续存在。
最佳答案
你的问题中没有“抄送”,但无论如何
您的代码看起来不正确,因为?
使用system
和fork
在引擎盖下面。所以不是一个exec
和一个fork
您使用exec
三次,使用fork
两次。
在此处阅读如何运行进程:how to correctly use fork, exec, wait
以正确的方式运行进程后,您的实际pid为execv
,
如果你想的话,你可以杀了它,或者停下来,或者你想要什么。