【发布时间】:2020-03-03 19:03:17
【问题描述】:
我正在学习 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是不正确的调用来实现什么?代码应该做什么? -
@idclev 我正在尝试调用另一个程序,将文件名作为 c 字符串参数传递。它确实成功并打印到标准输出,但我不再有主窗口。
-
文件名和路径是什么?请在问题中包含该信息
-
当 execvp() 实际运行另一个程序时,这与我的问题无关。
-
如果它与问题无关,那为什么是这个问题? “也许 execvp() 不是正确的调用方式?” ...