我正在学习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()不是执行其他程序的正确调用?

该调用将传递完整的文件路径作为wormhole的参数,它可以存在于/ usr / bin或/ usr / local / bin中,将调用保留为execvp()

最佳答案

新的实例化进程将替换当前的进程。



Execvp Linux man page

您可能想先fork(),然后使用execvp()。

关于c++ - 调用execvp()后主窗口关闭,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60513939/

10-11 22:54