首先,我使用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播放器进程将继续存在。

最佳答案

你的问题中没有“抄送”,但无论如何
您的代码看起来不正确,因为?使用systemfork
在引擎盖下面。所以不是一个exec和一个fork
您使用exec三次,使用fork两次。
在此处阅读如何运行进程:how to correctly use fork, exec, wait
以正确的方式运行进程后,您的实际pid为execv
如果你想的话,你可以杀了它,或者停下来,或者你想要什么。

09-04 05:06