Qprocess 搞乱了我的 linux 命令(我认为)。怎么修? [复制]

2024-02-17

我需要强制我的 C++ QT4 应用程序从 Linux 命令读取结果。我正在尝试使用 Qpr​​ocess,但是一旦我的命令变得复杂,它就会以某种方式变得混乱(只是猜测)并且不起作用。

这里我试着给大家举一个小例子:

QProcess process;
command = "ls -l | grep a | sort";
qDebug() << "Execute command -> "+command;
process.start( command );
process.waitForFinished(-1);
QString processStdout = process.readAllStandardOutput();
QString processStderr = process.readAllStandardError();
qDebug() << "Std out -> "+processStdout;
qDebug() << "Std err -> "+processStderr;

这将打印:

Execute command -> ls -l | grep a | sort
"Std out -> " 
"Std err -> ls: |: No such file or directory

while 会从控制台正确打印符文的文件名。

如果我用更简单的东西替换逗号,例如command = "ls -l";它工作不顺利 该错误由操作系统返回标准错误。

因此我猜想用于该命令的 Qstring 会以某种方式被操纵。知道发生了什么吗?


QProcess不支持 shell 命令。因此,管道符号不会由 shell 解释,而是直接传递给ls. ls将其解释为文件名,并抱怨,因为显然没有名为的文件|.

您需要通过重定向 QProcess 对象的输入和输出流来手动设置管道。阅读文档以了解如何执行此操作。

一般来说,应该如何避免 shell 命令,而依赖 Qt 类和函数。当然不需要打电话grep or ls,因为同样可以更容易地完成QRegExp, and QDir。如果需要执行子进程,则使用::start(const QString&, const QStringList&, OpenMode)重载并将所有参数作为列表传递以避免引用问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qprocess 搞乱了我的 linux 命令(我认为)。怎么修? [复制] 的相关文章

  • 如果两个线程同时访问同一个 bool 变量会发生什么?

    我有一个跨平台 C 程序 其中使用 boost 库创建异步计时器 我有一个全局变量 bool receivedInput false 一个线程等待并处理输入 string argStr while 1 getline cin argStr
  • C# 测试活动的互联网连接。 Ping google.com

    C 2008 我正在使用此代码来测试互联网连接 因为我的应用程序必须登录到网络服务器 但是 如果用户互联网连接失败或电缆被拔出 我必须通知用户 Ping www google com to check if the user has a i
  • C# 并行与并行线程代码性能

    我一直在测试 System Threading Parallel 与线程的性能 我很惊讶地发现并行比线程花费更长的时间来完成任务 我确信这是由于我对并行的了解有限 我刚刚开始阅读 我想我会分享一些片段 如果有人可以向我指出并行代码比线程代码
  • 当 f & g 修改同一个全局变量时,表达式 f() > g() 的值是否未定义或未指定?

    UPDATE 由用户标记ecatmur 它是重复的在 C99 中 f g 是未定义还是只是未指定 https stackoverflow com questions 3951017 in c99 is fg undefined or mer
  • 计算复杂数组的abs()值的最快方法

    我想计算 C 或 C 中复杂数组元素的绝对值 最简单的方法是 for int i 0 i lt N i b i cabs a i 但对于大向量来说 速度会很慢 有没有办法加快速度 例如使用并行化 语言可以是 C 或 C 鉴于所有循环迭代都是
  • & 运算符的含义是什么?

    在下面的代码中 Expression
  • 我的 WPF 应用程序未触发 MainWindow_Loaded

    我目前正在关注Pluralsight C Fundamentals Part 1并在Classes and Objects视频部分指导我在 Visual Studio 中创建一个新的 WPF 应用程序并填写代码 这导致以下结果 namesp
  • 修剪 UIImage 边框

    这是我想要修剪的图像的示例 我想去掉图像周围的边框 在本例中是顶部和底部的黑条 我在Github上找到了一个库 CKImageAdditions https github com cmkilger CKImageAdditions 但是它似
  • 多维数组和指向指针的指针

    创建多维数组时char a 10 10 根据我的书 它说你必须使用类似于char a 10 将数组传递给函数 为什么必须这样指定长度 您不是只是将双指针传递给 with 并且该双指针不是已经指向分配的内存吗 那么为什么参数不能是char a
  • 函数指针上的未知类型 F TYPE

    include
  • 如何删除实体框架6中的多对多关系

    如果将项目连接为多对多关系 则从数据库中删除项目时会出现问题 我的数据库看起来像 Project lt JobInProject gt Job ProjectID JobInProjectID JobID ProjectID JobID 主
  • Identity Server 4:添加访问令牌的声明

    我正在使用 Identity Server 4 和隐式流 并且想要向访问令牌添加一些声明 新的声明或属性是 tenantId 和 langId 我已将 langId 添加为我的范围之一 如下所示 然后通过身份服务器请求 但我也获得了tena
  • 三种 System.Drawing 方法表现出缓慢的绘制或闪烁:解决方案?或其他选择?

    我正在通过 System Drawing 进行一些绘图 但遇到了一些问题 我将数据保存在队列中 并将该数据绘制 绘制 到三个图片框中 此方法填充图片框 然后滚动图形 所以不要在以前的绘图上绘制 并且逐渐看起来更混乱 我找到了两种绘制图表的解
  • 如何修复 /usr/bin/env 参数处理?

    我遇到了一个奇怪的问题 usr bin env 我设计了一个简单的脚本来显示问题 该脚本使用 Ruby 编写 但使用 Python 编写的类似脚本也会发生同样的情况 这是脚本 usr bin env ruby p ARGV 还有一个没有 u
  • 执行存储过程时 ExecuteNonQuery() 返回 -1

    我正在尝试在 Visual Studio 中执行存储过程 下面给出 CREATE PROCEDURE dbo addStudent stuName varchar 50 address varchar 100 tel varchar 15
  • Request.Form 和 Request.QueryString 之间的区别?

    有人可以告诉我两者之间的确切区别吗Request Form and Request QueryString 我知道一个区别 比如 如果HTTP请求方式为POST 则用户提交的数据在申请表 收藏 如果HTTP请求方法是GET 则用户提交的数据
  • 为什么未到达的 try-catch 块会增加运行时间?

    我目前正在创建自己的容器库 但我已经看到无法访问 if 语句无效 try catch阻止增加运行时间 这是我的测试 Vector cpp template
  • 使用 _Alignas 进行结构成员对齐

    我想知道以下问题 是新的吗 Alignas结盟 C11 中的说明符适用于结构成员吗 我一直假设这么多 但彻底阅读了 N1570 公开草案似乎表明对齐说明符不能 出现在一个说明符限定符列表 这就是我所期望的 如果得到支持的话 我已经读过几遍语
  • C++ 联合数组和变量?

    在C 中没有办法做这样的事情吗 union Scalar x y Scalar v 2 Where x v 0 and y v 1 既然您使用的是 C 而不是 C 并且它们具有相同的类型 为什么不直接将 x 设为对 v 0 的引用 将 y
  • 如何组合||条件语句中的运算符[重复]

    这个问题在这里已经有答案了 代替 if foo 1 foo 5 foo 9 我喜欢将它们组合起来 类似于以下内容 这不起作用 if foo 1 5 9 那可能吗 不幸的是不是 你最好的选择是创建一个扩展方法 public static bo

随机推荐

  • GORM 中的多个一对多关系

    我有一个struct定义在GO像这样 package models StoryStatus indicates the current state of the story type StoryStatus string const Pro
  • Ioc/DI - 为什么我必须引用应用程序入口点中的所有层/组件?

    与这个问题相关 EF4 为什么启用延迟加载时必须启用代理创建 https stackoverflow com questions 9500642 ef4 mvc3 with windsor castle ioc di navigation
  • 在React中使用父组件中的按钮提交表单

    所以我必须在模态中实现一个表单 正如你所看到的 模态中的按钮不是表单中的按钮 我将表单创建为模式的子组件 如何使用父组件中的按钮提交表单 我在用React 语义 UI https react semantic ui com collecti
  • HKDF 是在 Java 密码体系结构中实现的吗?

    在我正在写的应用程序中我需要做HKDF https en m wikipedia org wiki HKDF从一个密码派生出两个不同的密钥 在搜索有关如何使用 Java 的示例时 我发现了以下两个 https github com Whis
  • Java:notify() 与 notifyAll() 重头再来

    如果一副护目镜 之间的差异notify and notifyAll 然后会弹出很多解释 抛开javadoc段落 这一切都归结为被唤醒的等待线程的数量 一notify 和所有在notifyAll 然而 如果我确实理解这些方法之间的区别的话 总
  • Android 通过按钮打开菜单

    有没有办法让按钮调用子菜单 我目前有一个菜单 如果他们选择其中一个选项 则会打开一个子菜单 但是我希望能够从 Button 小部件而不是 Menu 对象启动子菜单 Thanks 我不一定推荐这样做 但我能够以编程方式调用子菜单 首先 在 o
  • 我需要route53将域绑定到ec2吗?

    大家好 我是 AWS 世界的新手 1 我有一些第三方 不是亚马逊 购买和注册的域名 我在其中设置 DNS 值 2 我有 EC2 微型实例 在面板中我可以找到公共 DNS 和公共 IP 3 我还有route53服务 A记录绑定到2 中的IP
  • React Native - 使用 React Navigation 动态创建导航器

    我正在使用 React Native 构建一个移动应用程序 并使用 React Navigation 在我的应用程序中构建一个导航器 React 导航为我提供了一种处理抽屉内嵌套选项卡栏的好方法 该抽屉也在 Stack Navigator
  • java.net.SocketException:Android 模拟器中的协议不支持地址族

    我正在尝试运行简单的应用程序来从 android 模拟器访问互联网 这是我的代码 我在代理后面 并通过 无线网络 gt APN gt 在模拟器中配置了代理设置 但互联网是通过浏览器而不是应用程序运行的 HttpURLConnection c
  • AWS X 射线追踪在 Node.js 中的传出请求上中断

    嘿 我正在尝试跟踪来自 Express 应用程序的传出请求 但我无法让它工作 当我不使用 AWSXRAY captureHttpsGlobal 函数时 传入请求一切正常 我可以在 服务地图 中看到我的应用程序以及 AWS 上传入的传入请求跟
  • 在捆绑包中找不到名为“Main”的故事板

    我收到一个奇怪的错误 Could not find a storyboard named Main in bundle NSBundle 当尝试在真实的 iOS 设备上运行我的应用程序时 我的目录中有该文件 并且它在模拟器中运行良好 然而
  • Intel HD 3700 linux 的 Java 8 Swing 渲染问题

    我在 Kubuntu 18 04 中用 java 8 update 181 开发了一个应用程序 在我的开发 PC 中 我拥有配备英特尔 HD Graphics 530 的英特尔 i3 6100 所有图形均使用 swing 完成 并且通过此硬
  • 使用 HttpEntity 在 Spring RestTemplate 中删除

    我不知道为什么我的代码不起作用 我尝试过 Postman 并且工作正常 但与RestTemplate当它使用相同的端点时我无法得到响应 ResponseEntity
  • 从 Android 中的 EditText 中移除焦点 [重复]

    这个问题在这里已经有答案了 我有两个EditTexts 和一CheckBox and a Button在我的布局中按上述顺序 将值输入到EditText 用户必须通过单击接受条款和条件Checkbox 我需要将焦点从EditText单击该复
  • 如何在 NetBeans 中获得 jQuery 代码完成?

    我在用着适用于 PHP 的 NetBeans http bits netbeans org netbeans 6 8 m2 当我编辑 js 文件时 它给了我javascript代码完成 我怎样才能让它同时给我 jQuery 代码完成 首先转
  • 配置 htaccess 以与 IIS6 上的 IIRF 配合使用 - codeigniter

    我刚刚使用 CodeIgniter 创建了一个网站 问题出在我们的服务器在带有 IIS6 的 Windows Server 2003 上运行 调用网站时只显示首页 其他页面由于IIS6的 htaccess限制而显示404错误页面 支持人员告
  • 如何使用 openssl 创建公钥和私钥?

    我的问题是 How to create 公钥 和 Windows 中 OpenSSL 的私钥 How to put the created public key in crt文件和 私人的 pcks8 file 我想使用这两个密钥在 Jav
  • 无法启动 Groovy 控制台 - 缺少依赖项 javax/xml/bind/Unmarshaller

    常规版本 2 5 1 Java版本 10 0 2 尝试启动 groovyConsole 我得到以下信息 groovyConsole WARNING An illegal reflective access operation has occ
  • 包含容器日志的日志文件在哪里?

    我正在使用几个容器运行docker compose 我可以使用命令查看应用程序日志docker compose logs 但是 我想访问原始日志文件以将其发送到某个地方 例如 它位于哪里 我想每个容器都有单独的日志 在容器内 但我在哪里可以
  • Qprocess 搞乱了我的 linux 命令(我认为)。怎么修? [复制]

    这个问题在这里已经有答案了 我需要强制我的 C QT4 应用程序从 Linux 命令读取结果 我正在尝试使用 Qpr ocess 但是一旦我的命令变得复杂 它就会以某种方式变得混乱 只是猜测 并且不起作用 这里我试着给大家举一个小例子 QP