gpt4 book ai didi

c - 获取由 xdg-open 创建的进程的 PID

转载 作者:行者123 更新时间:2023-12-04 12:16:41 28 4
gpt4 key购买 nike

情况如下:我fork了用默认浏览器打开一个html文件的过程。以下是我的情况:

if ((pid=fork())==0) {
execlp("/usr/bin/xdg-open", "xdg-open", url, NULL);
/*if execlp failed, exit the child*/
exit(0);
}

但是,我想获取进程的 PID(打开的浏览器),以便稍后也可以关闭它。但我似乎不知道我怎么能得到它。如果您有任何建议,请告诉我。

最佳答案

您应该已经有了子进程的 PID,fork() 的手册页说:

On success, the PID of the child process is returned in the parent, and 0 is returned in the child.



所以在子进程中你检测到 0 并运行你的程序,在父进程中将是子进程的实际 PID。

根据您的评论,接下来会发生的是 xdg-open 进程 - 您现在的 PID 将依次启动浏览器,而您无法直接访问该浏览器进程的 PID。

目前,我唯一能想到的就是创建另一个子进程,您可以在其中运行 ps 或 pgrep 等命令。然后您可以解析该命令的输出以查找作为子进程运行的浏览器的 PID xdg-open 的。有一个读取子进程输出 here的例子

关于c - 获取由 xdg-open 创建的进程的 PID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21705947/

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