完全自动播放文件后停止mpg123

时间:2015-11-11 11:33:15

标签: c linux fork

首先我使用FIFO远程使用mpg123实现暂停功能,但现在我想在文件自动播放时关闭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播放器进程将继续存在

1 个答案:

答案 0 :(得分:1)

你的问题中没有?,但无论如何 您的代码看起来不对,因为system使用了forkexec 引擎盖下。因此,而不是一个fork和一个exec 您使用fork三次并使用execv两次。

在此处阅读如何运行流程:how to correctly use fork, exec, wait

以正确的方式运行进程后,您有mpg123的真实pid, 因此,如果你想要,你可以杀死它,或者暂停或你想要什么。