gpt4 book ai didi

c - 我如何使用 fork 打开一个新进程并使用 execl 在 c 中启动网络浏览器

转载 作者:行者123 更新时间:2023-11-30 21:11:25 30 4
gpt4 key购买 nike

我想使用 fork 创建一个新进程,然后使用 excl 启动带有 url 的 Web 浏览器。我对 fork 和 excel 不太熟悉,所以任何帮助将不胜感激。谢谢

编辑:这是我的代码,但我认为它不正确

if(fork() == 0) {
execl (url,0);
printf("Route opened in brwoser\n");
} else {
printf("Route cannot be opened.\n");
}

最佳答案

首先阅读这些调用的手册页:

man 2 fork
man 3 execl

系统调用fork()创建进程的副本并在两者中返回,在父进程中返回子进程ID,在子进程中返回零。如果返回负数,则表示失败。

pid_t pid = fork();
if (pid < 0)
printf("Fork failed\n");
else if (pid > 0) /* Here comes the parent process */
printf("Fork successful\n");
else /* Here comes the child process */
...

另一方面,execl() 根本不返回。它会丢弃您的程序,并用同一进程中其参数中指定的图像替换它。

如果execl()返回,则这是一个错误。它可能没有找到您指定的程序。

它的参数是被调用的程序(URL 不是程序)及其参数。

...
else { /* Here comes the child process */
execl("/usr/bin/firefox", "/usr/bin/firefox", "example.com", (char*)NULL);
printf("Could not execute Firefox\n");
}

关于c - 我如何使用 fork 打开一个新进程并使用 execl 在 c 中启动网络浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22765252/

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