我有这样的命令:
./mjpg_streamer -i "./input_uvc.so -n -f 15 -r 1280x720" -o "./output_http.so -n -w ./www "
Run Code Online (Sandbox Code Playgroud)
用于通过以太网传输视频.目前我正在通过终端运行,对于退出我只需按Ctrl + c.但我需要使用c代码来做到这一点.是否有可能或任何其他方法可用?
谢谢.
从技术上讲,您可以通过使用fork()和exec家人来做您需要做的事情.
它可能像这样工作:
pid_t PID = fork();
if(PID == 0) {
execl("yourcommandhere");
exit(1);
}
//do Whatever
kill(PID, 15); //Sends the SIGINT Signal to the process, telling it to stop.
Run Code Online (Sandbox Code Playgroud)
execl(或者该家族的任何其他成员,请看这里:http://linux.die.net/man/3/execl),将用您正在调用的进程替换当前进程.这是我们用fork创建的子进程.Fork为子进程返回'0',并将子进程的实际进程ID返回给原始进程调用fork,后者给出了原始进程控制.
通过调用kill和提供SIGINT(15),您将使用指定的PID(您从fork获得)告诉进程停止.exit(1)是必要的,因为否则,如果execl失败,你将有两个进程在你手上做同样的事情.这是一个故障保险.
我希望这有帮助.
| 归档时间: |
|
| 查看次数: |
2696 次 |
| 最近记录: |