c++ - Shell 脚本执行 - 错误处理

标签 c++ qt shell qt4

我正在使用 qt Creator 设计一个 GUI 应用程序。如果我按下按钮,.csv 文件中的值就会导入到 sqlite3 数据库表中。

为此,我使用 QProcess 启动了一个 shell 脚本,其中包含用于导入数据的命令。

void MainWindow::on_pushButton_clicked()
{
    QProcess process;
    process.startDetached("/bin/sh", QStringList()<< "/home/aj/myscript.sh");
}

用于导入的 myscript.sh 是--

echo -e '.separator ","\n.import import_table.csv test_table' | sqlite3 testdatabase.db

这种方法背后的原因是,如果不创建自定义解析解决方案,点命令就无法直接集成到 C++ GUI 程序中。

现在,这种方法(QProcess 和 shell 脚本)非常适合我。但一个瓶颈是它不提供任何错误处理/识别。

例如,如果导入命令在数据检索期间中途停止,或者 .csv 中的所有值均未导入,我将不知道问题所在。有什么方法可以知道导入过程中是否出现问题??? (通过 QDebug 重定向消息???)

最佳答案

QProcess 有一个名为 exitCode() 的成员函数,奇怪的是它返回进程的退出代码。

http://qt-project.org/doc/qt-5/qprocess.html

要找到这个答案,需要在 Google 中搜索文档 10 秒...

关于c++ - Shell 脚本执行 - 错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27356530/

相关文章:

c++ - 由于 SSL3_GET_CLIENT_CERTIFICATE :no certificate returned,验证 SSL 客户端真实性失败

c++ - 如何创建一组可以循环访问的 UI 元素

python - 使滚动区域水平扩展以适应内容

linux - 检查可用的处理核心

c++ - boost::asio 异步服务器设计

c++ - 字符 *newx=p+strlen(str1);这将如何执行,因为 strstr 将返回指向另一个字符串的第一个匹配字符的指针

c++ - 尝试通过多个函数移动数组并遇到一个我不知道如何修复的错误

qt - QML Video alpha 混合/将视频渲染到 Qt Quick Scene Graph

linux - 临时更改 $PATH 仅为脚本运行

bash - 为什么 awk 不在这里创建文件?