我认为这是一个简单的问题,但到目前为止我无法在互联网上找到所需的答案。
我脑子里有一个伪代码如下:
main() {
loop = g_main_loop;
main_loop_callback(keyboard_cb, keyboard input);
g_main_loop_run(loop);
}
我的回调函数将是这样的:
keyboard_cb {
start_process(./rtsp_server "port / mountPoint / input");
}
我想要开始的过程是这样的:
main {
loop = g_main_loop;
rtsp_server(port, mountPoint, input);
g_main_loop_run(loop);
}
我已经有了一个rtsp服务器代码,可以按照我想要的方式完美运行。但是,我不确定如何从另一个C
程序调用此程序。我首先想要使用fork
但是,它在参考手册中写道g_main_loop
和fork
不兼容,我应该使用exec()
。
这可以用exec()吗?
g_main_loops
是否会互相混淆,因为它们都使用默认上下文?
考虑到我可能会创建一些任意数量的rtsp_servers,并且每个rtsp_server
都有自己的g_main_loop
,我创建第一台服务器后会exec()
被卡住吗?我是否需要keyboard_cb
内的线程以便它不会被卡住?