从Linux中的应用程序启动网页

KPe*_*xEA 5 c c++ browser linux

我有一个应用程序,当用户选择它时,在"当前"浏览器中启动一个网页.我的这部分应用程序在Windows版本中运行良好,但我无法弄清楚如何在Linux版本中执行此操作.

现在,Linux版本在特定目录中为Firefox进行了硬编码,并且每次都运行它的新实例,并且不显示我传入的URL.我希望它不会每次都启动一个新版本,而只是打开一个当前打开的新页面如果已经在运行.

对于Windows我使用:

ShellExecute(NULL,"open",filename,NULL,NULL,SW_SHOWNORMAL);
Run Code Online (Sandbox Code Playgroud)

对于Linux我目前使用:

pid_t pid;
char *args[2];

char *prog=0;
char firefox[]={"/usr/bin/firefox"};

if(strstri(filename,".html"))
    prog=firefox;

if(prog)
{
    args[0]=(char *)filename;
    args[1]=0;
    pid=fork();
    if(!pid)
        execvp(prog,args);

}
Run Code Online (Sandbox Code Playgroud)

Joh*_*kin 7

如果你是为现代发行版写的,你可以使用xdg-open:

$ xdg-open http://google.com/
Run Code Online (Sandbox Code Playgroud)

如果您使用的是旧版本,则必须使用特定于桌面的命令,如gnome-openexo-open.