0

我想在浏览器中打开一个链接,然后我希望程序终止。为此,我正在创建一个使用 exec 在链接上运行 xdg-open 的子进程。我发现如果浏览器已经打开,则关闭浏览器不会终止程序,如果浏览器尚未打开,则关闭浏览器会终止程序。如何使子进程调用 xdg-open 后,如果父进程终止,程序应该终止。这是代码:

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>

    int main()
    {
        if (fork() == 0) {
            execlp("xdg-open", "xdg-open", "https://youtube.com", NULL);
            exit(0);
        }
        else
            printf("I am the parent\n");
        printf("Exiting now\n");
        return 0;
    }

编辑:在 exec 调用之后删除了一个打印语句,因为我在 exec 之后意识到子进程被我调用的程序替换。

4

1 回答 1

1

正如@someprogrammeedude 指出的那样,它实际上终止了该程序,但直到我按下回车后它才给我提示,这就是我认为它仍在运行的原因。

于 2021-09-29T10:09:37.190 回答