gpt4 book ai didi

c++ - 在 Linux 上用 C++ 从文件打开进程

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:40:29 26 4
gpt4 key购买 nike

我正在 Linux 上用 C++ 编写我的应用程序。 C++ 有一个称为“系统”的函数来执行程序。

我尝试像这样从 C++ 打开 gnome-system-monitor:

system("gnome-system-monitor");

但是,当我调用这个“系统”函数时,我的应用程序线程会阻塞,直到我关闭 gnome-system-monitor 窗口。

在不阻塞调用进程的情况下从文件打开进程的任何其他方法?

最佳答案

适用于任何 Linux 或其他基于 POSIX 的系统的经典方法是

if (0 == fork()) {
execlp("gnome-system-monitor", "gnome-system-monitor", (char *)NULL);
}

(此示例中省略了错误处理。)这 (a) 创建一个新进程,(b) 在该新进程中,在搜索 PATH 环境变量以找到这样的命令后运行“gnome-system-monitor”, (c) 将名称“gnome-system-monitor”作为 argv[0] 传递给它,没有其他参数。在父进程中,一旦创建了新进程,它就会继续前进而不等待任何结果。

有关详细信息,请参阅 forkexeclp 的手册页。

关于c++ - 在 Linux 上用 C++ 从文件打开进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12853109/

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