我有一些程序想要使用Glib进行跨平台运行。 但我发现Glib的过程控制g_spawn *()函数非常难以使用。 我不知道如何替换一些非常基本的Unix系统函数fork()。
#include <stdio.h>
#include <unistd.h>
int main(int argc, char **argv)
{
pid_t pid = fork();
if (pid == 0)
{
printf("Here is child process\n");
}
else if (pid > 0)
{
printf("Here is parent process\n");
}
else
{
// fork failed
printf("fork() failed!\n");
return 1;
}
return 0;
}
&#13;
g_spawn *()函数描述在这里,它需要填充很多参数甚至需要其他函数来帮助它绑定IO,我不知道如何使用它们替换fork(),它总是试图在&#34; gchar ** argv中运行一些脚本,&#34;论点。但我只需要它像fork()一样工作,不要像exec()那样运行。 点击here!
答案 0 :(得分:0)
GLib中的流程生成API旨在替换使用fork()
和exec()
的常见模式,而不仅仅是fork()
。它实际上非常好(并且很容易)用于它的设计,但是如果你想要一个像fork()
那样的API,你应该使用fork()
。