Откройте HTML-файл в каталоге с C ++

0

Я хочу открыть HTML файл с именем "myHTML.html", используя код C++ в Ubuntu. Файл находится в том же каталоге, что и исходные файлы C++.

Могу ли я узнать, как мне это сделать?

  • 1
    Что вы подразумеваете под «открытым»? Читать это? Напиши это? Сделать это?
  • 0
    @gongzhitaao gongzhitaao привет! Я хочу открыть это. Например. Когда я запускаю определенный метод, мой HTML-файл запускается в Mozilla или Chrome. : D
Показать ещё 3 комментария
Теги:

1 ответ

1

Во-первых, вы можете запустить процесс, выполняющий веб-браузер (в фоновом режиме), например

 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);

Конечно, если текущая директория имеет странное имя (например, содержит цитату, что является необычным), вы можете получить некоторую инъекцию кода.Но это маловероятно.и вы можете заменить mypwd на "/proc/self/cwd"

Если HTML файл, который вы хотите открыть, /etc/yourapp/myHTML.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

  • 0
    Заранее спасибо. Я скоро попробую! :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню