【发布时间】:2020-07-01 08:07:52
【问题描述】:
您好,我想通过终端或 c/c++ 程序打开系统上已安装的任何应用程序。
我通过终端或c/c++说的原因是我们在终端中使用的命令也会在c/c++程序中使用!!。
我提到了这个链接Open Application In C,但它不是跨平台的。我知道 system 命令与 open 一起用于从 mac 启动任何应用程序。例如:- open -a "Google chrome"通过终端,如果需要在 c/c++ 程序中,它将是 system("open -a 'Google chrome'"); 。
但是如何在 linux 中打开任何已安装的应用程序?还是窗户?以及如何使其跨平台 c/c++??我知道基于宏我们可以识别OS并根据OS执行相应的命令。但我想知道在 linux 和 windows 中打开应用程序?
示例代码:
#include<iostream>
#include<cstdlib>
int main(){
system("open -a 'Google chrome'");
return 0;
}
此代码适用于 Mac,但根据我在 linux 中发现的研究,它必须是足够的应用程序路径。请问有人能澄清一下吗? 我需要一个跨平台的解决方案!!
【问题讨论】:
-
你在linux上试过了吗?
-
@RoQuOTriX 是的,我尝试过它不能以这种方式工作!例如在 linux 中,如果我使用 /usr/bin/google-chrome 它可以工作,但不适用于每个应用程序。所以我需要明确的方法将它包含在 c/c++ 程序中。
-
system是唯一存在的标准解决方案。当然,它的工作原理是高度特定于平台的。 -
@Karthikgr 如果
/usr/bin/google-chrome中没有安装 google-chrome 并且您有其他路径,您会怎么做?你知道PATH环境变量吗? linfo.org/path_env_var.html -
@RoQuOTriX 我认为我会使用“哪个 google-chrome”将为您提供路径并且我会使用!!。但我需要的是一般我想从 c/c++ 程序启动任何应用程序。
标签: c++ c linux macos cross-platform