Gtk 如何使用Glib g_spawn*()函数替换fork()

Gtk 如何使用Glib g_spawn*()函数替换fork(),gtk,multiprocessing,glib,Gtk,Multiprocessing,Glib,我有一些程序想使用Glib进行跨平台运行。 但我发现Glib的过程控制g_spawn*()函数很难使用。 我不知道如何替换Unix系统函数fork()的一些非常基本的用法 #包括 #包括 int main(int argc,字符**argv) { pid_t pid=fork(); 如果(pid==0) { printf(“这是子进程\n”); } 否则,如果(pid>0) { printf(“这是父进程\n”); } 其他的 { //fork失败了 printf(“fork()失败!\n”)

我有一些程序想使用Glib进行跨平台运行。 但我发现Glib的过程控制g_spawn*()函数很难使用。 我不知道如何替换Unix系统函数fork()的一些非常基本的用法

#包括
#包括
int main(int argc,字符**argv)
{
pid_t pid=fork();
如果(pid==0)
{
printf(“这是子进程\n”);
}
否则,如果(pid>0)
{
printf(“这是父进程\n”);
}
其他的
{
//fork失败了
printf(“fork()失败!\n”);
返回1;
}
返回0;

}
GLib中的进程生成API旨在取代将
fork()
exec()
一起使用的常见模式,而不仅仅是
fork()
。实际上,它的设计非常好(也很简单),但是如果您想要一个类似于
fork()
的API,那么您应该使用
fork()

仍然有问题。“GLib中的进程生成API旨在一起替换…fork()和exec(),而不仅仅是fork()。”那么,您能告诉我如何在我的代码中替换fork(),并打印2条消息(1个表单子进程1个表单父进程)吗?当然,我不是说fork完全相同,只是类似,可以替换并完成它的工作,正如您所说的“取代。。。fork()““您应该使用fork()”。我已经说过“使用Glib进行跨平台运行”。您应该知道目标平台中只有Glib,没有fork(),我只需要它的函数。AFAIK Glib不包含单独替换fork的函数。如果您正在做一些无法用其他方式解决的事情(线程、助手可执行文件等)您可能需要自己编写多个实现。有关Windows版本,请参阅。