我想在Ubuntu中使用C ++代码打开名为“myHTML.html”的HTML文件。该文件与我的C ++源文件位于同一目录中。
我可以知道我该怎么做?
答案 0 :(得分:1)
首先,您可以启动运行Web浏览器的进程(在后台),例如
char cmd[256];
char mypwd[200];
memset (mypwd, 0, sizeof(mypwd));
if (!getcwd(mypwd, sizeof(mypwd)))
{ perror("getcwd"); exit (EXIT_FAILURE); };
snprintf (cmd, sizeof(cmd),
"/usr/bin/x-www-browser 'file://%s/myHTML.html' &", mypwd);
int notok = system(cmd);
当然,如果当前目录有一个奇怪的名称(例如包含一个不常见的引用),你最终可能会得到一些code injection。但这不太可能。您可以将mypwd
替换为"/proc/self/cwd"
如果您要打开的HTML文件是内置的,例如/etc/yourapp/myHTML.html
(或其他一些不错的修复的文件路径,没有顽皮的字符),您可以使用
int notok = system("/usr/bin/x-www-browser /etc/yourapp/myHTML.html &");
或
int notok = system("xdg-open /etc/yourapp/myHTML.html &");
或
pid_t pid = fork();
if (pid == 0) {
// child process
execlp("xdg-open", "/etc/yourapp/myHTML.html", NULL);
_exit(127);
};
(您可能希望waitpid
稍后pid