Qt ile konsol komutları?

24 views
Skip to first unread message

Dr. Mucibirahman İLBUĞA

unread,
Oct 15, 2019, 4:31:43 PM10/15/19
to qttu...@googlegroups.com

Merhabalar,

Aşağıdaki komut ile Rpi'nin seri kodunu almaya çalışıyorum.

cat /proc/cpuinfo | grep Serial | cut -d ' ' -f 2


Qt içinde ise;

QProcess process;     process.start("cat", QStringList() <<"/proc/cpuinfo"<< "|" << "grep"<< "Serial"<< "|"<< "cut"<< "-d"<< "' '"<< "-f"<< "2");     process.waitForFinished(-1); // will wait forever until finished     QString stdout = process.readAllStandardOutput();     QString stderr = process.readAllStandardError();     qDebug()<<stdout<< endl;     qDebug()<<stderr<< endl;

gibi bir şey deneyeyim dedim ama sanırım ikinci bir komuta aktardığım için sıkıntı oluyor. Dosyayı açıp içinden de çekebilirim ama kolayı varken kasmayayım dedim...

Gelen hata:

"/bin/cat: invalid option -- 'd'\nTry '/bin/cat --help' for more information.\n"

-- 
Kolay gelsin,
Mucip:)

Caglar AKYUZ

unread,
Oct 16, 2019, 8:16:16 AM10/16/19
to qttu...@googlegroups.com
Merhaba,

QProcess ile redirection calismaz, bash calistirip yapabilirsiniz:

QProcess p;
p.start("bash -c \"cat /proc/cpuinfo | grep Serial | cut -d ' ' -f 2\"");
p.waitForFinished();
QString res = QString::fromUtf8(p.readAll());
p.close();

Tesekkurler,
Caglar
> --
> --
> Qt Türkiye E-Posta Listesi
> Yazılanlardan sadece yazan sorumludur...
> Mesaj göndermek için qttu...@googlegroups.com
> Listeden çıkmak için qtturkiye-...@googlegroups.com
> Liste hakkında daha fazla bilgi için
> http://groups.google.com/group/qtturkiye
> Qt Türkiye: http://qt.comu.edu.tr
> ---
> Bu iletiyi Google Grupları'ndaki "Qt Türkiye" grubuna abone olduğunuz için aldınız.
> Bu grubun aboneliğinden çıkmak ve bu gruptan artık e-posta almamak için qtturkiye+...@googlegroups.com adresine e-posta gönderin.
> Bu tartışmayı web'de görüntülemek için https://groups.google.com/d/msgid/qtturkiye/ba33e48b-a3e9-adad-0ad9-ce6e0ddd6593%40gmail.com adresini ziyaret edin.

Dr. Mucibirahman İLBUĞA

unread,
Oct 16, 2019, 6:18:52 PM10/16/19
to qttu...@googlegroups.com
Merhaba Çağlar Bey,

Evet oldu ama bash yerine sh yapınca oldu. Benim kabuk farklı demek ki... :)

Çok teşekkürler.


Kolay gelsin,
Mucip:)

Dr. Mucibirahman İLBUĞA

unread,
Oct 17, 2019, 2:15:36 PM10/17/19
to qttu...@googlegroups.com
Merhaba Çağlar Bey,

Evet. Bu şekilde de oluyor teşekkür ederim.

Bu arada çift pipe (|) kullanıldığında çift QProcess veya fazla da
zincirleme kullanılabiliyormuş.

https://doc.qt.io/qt-5/qprocess.html#setStandardOutputProcess


Kolay gelsin,
Mucip:)

On 16.10.2019 15:15, Caglar AKYUZ wrote:
Reply all
Reply to author
Forward
0 new messages