Главное окно закрывается после вызова execvp () - PullRequest
1 голос
/ 03 марта 2020

Я изучаю QT и QT Creator, чтобы иметь опыт работы с ним. Использование Arch Linux с последними библиотеками QT.

При нажатии кнопки я пытаюсь сделать следующее:

std::string name= filename.toStdString();
char *file_path = (char*)name.c_str();

char *myargs[] = {"wormhole", "send", file_path, NULL};
int rc = execvp(myargs[0], myargs); /*This call is the question*/

В точке, где происходит объявление int rc Главное окно, порожденное этим классом, закрывается. Я не уверен почему. Возможно, execvp() неправильный вызов для запуска другой программы?

Этот вызов передал бы полный путь к файлу в качестве аргумента для червоточины, он может существовать в / usr / bin или / usr / local / bin, hense вызов execvp()

1 Ответ

1 голос
/ 03 марта 2020

Текущий процесс заменяется новым экземпляром процесса.

Семейство функций exe c () заменяет текущий образ процесса новым образом процесса.

Execvp Linux man-страница

Возможно, вы захотите сначала выполнить fork (), а затем использовать execvp ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...