gpt4 book ai didi

c++ - 如何从 C 执行命令并终止它

转载 作者:IT王子 更新时间:2023-10-29 00:54:55 26 4
gpt4 key购买 nike

我有这样的命令:

./mjpg_streamer -i "./input_uvc.so -n -f 15 -r 1280x720" -o "./output_http.so -n -w ./www "

用于通过以太网传输视频。目前我正在通过终端运行,要退出我只需按 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.

execl(或该系列的任何其他成员,看这里:http://linux.die.net/man/3/execl),将用您正在调用的进程替换当前进程。这是我们用 fork 创建的子进程。 Fork 为子进程返回'0',并将子进程的实际进程 ID 返回给调用 fork 的原始进程,从而赋予原始进程控制权。

通过调用 kill 并提供 SIGINT (15),您将告诉具有指定 PID(您从 fork 获得)的进程停止。 exit(1) 是必需的,因为否则,如果 execl 失败,您将有两个进程在您手上做同样的事情。这是一个故障保险。

希望对您有所帮助。

关于c++ - 如何从 C 执行命令并终止它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18530572/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com