QProcess處理帶管道的shell

2021-07-12 07:26:44 字數 825 閱讀 8785



**中需要呼叫

shell

,原寫法為:

qprocess *proc = new qprocess();

qstring qcmd = "find ./ -name *.so -print0 | xargs -0 objdump -x | grep -oe \"t_[0-9, a-f, a-f]\" ";

proc->start(qcmd);

if (proc->waitforfinished(1000))

}

但輸出結果一直為空,同樣的

shell

語句,在終端中直接執行,輸出結果非空。

後在一部落格中找到說法,

問題出在概念沒搞清,管道符是由

shell

進行解析處理的,上面的用法,相當於是兩個

shell

命令,不能在乙個

qprocess

中處理。

當qprocess

需要處理帶管道的

shell

時,需通過如下方法:

qprocess *proc = new qprocess();

qstringlist options;

options << "-c";

options << "find ./ -name *.so -print0 | xargs -0 objdump -x | grep -oe \"t_[0-9, a-f, a-f]\"";

proc->start("/bin/bash", options);

bat處理中的管道

最早使用 管道 linux系統中 命令1 命令2執行命令1的輸出作為命令2的輸入 舉例 ps ef grep tomcat ps與grep分別是兩個命令 ps ef列出程序 grep tomcat 在列出的內容中查詢含有tomcat的部分 通過這種方式我們可以一目了然地,檢視現在tomcat程序的狀...

處理帶引數的儲存過程

儲存過程 create procedure customer select country nvarchar 15 asselect customerid,companyname,contactname from customers where country country go.aspx cs ...

sql處理帶逗號的資料

這篇部落格宗旨在於處理如何使用sql把帶逗號的資料轉換為表中的行以及將表中的行拼接成用逗號組成的資料。具體 如下功能寫在注釋裡 將有逗號的資料轉換為乙個表儲存id加資料 godeclare text varchar 200 set text test1,test2 declare xml xml s...