Я хочу открыть файл HTML с именем «myHTML.html», используя код C++ в Ubuntu. Файл находится в том же каталоге, что и исходные файлы на C++.Открыть HTML-файл в каталоге с C++
Могу ли я узнать, как это сделать?
Я хочу открыть файл HTML с именем «myHTML.html», используя код C++ в Ubuntu. Файл находится в том же каталоге, что и исходные файлы на C++.Открыть HTML-файл в каталоге с C++
Могу ли я узнать, как это сделать?
Во-первых, вы можете запустить процесс, выполняющий веб-браузер (в фоновом режиме), например.
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
)
И даже лучше, вы могли бы сделать свое приложение на C++ сервером HTTP, например. с Wt или libonion
Заранее спасибо. Я попробую! :) –
Что вы подразумеваете под «открытием»? Прочтите? Напиши это? Извините? – gongzhitaao
@gongzhitaao привет! Я хочу открыть его. Например. когда я запускаю определенный метод, мой HTML-файл будет запущен в mozilla или chrome. : D –
Могу ли [этот пост] (https://stackoverflow.com/questions/6143100/how-do-i-open-a-file-in-its-default-program-linux) оказать некоторую помощь? – gongzhitaao