0

我有一个程序需要启动另一个程序。在我的 Mac 上,我使用 system("open path") 执行此操作,但在 linux 上不起作用。并且使用 system(./path) 不是我想要的,因为它超过了正在运行的程序。

那么有什么方法可以在 Linux 上获得与 mac 'open path' 命令相同的行为?

(Linux新手顺便说一句:p)

4

1 回答 1

1

如果您在 GUI 环境中运行应用程序,这应该是可能的,但方法不同。您需要明确启动一个新的终端实例。

确定终端应用程序的路径。这取决于 linux 发行版。接下来,检查该特定终端应用程序的文档,并了解如何启动它来运行应用程序(您的应用程序)而不是 shell。这可能涉及使用一些特定于应用程序的命令行选项。在终端窗口中对其进行测试,直到您有一个命令行可以为您提供所需的结果。如果您的应用程序也需要命令行参数,事情可能会变得有点棘手。必要时使用 -- 选项。

然后,您需要做的就是从“父”应用程序运行该命令行。但是,我建议不要使用 system()。exec... 系列函数(使用 fork 和 wait)提供了更好的控制。

于 2013-11-08T09:39:13.917 回答