How to get QIODevice instance for stdin, stdout, stderr text streams in QtJambi?
Asked Answered
M

1

6

I would like to get QIODevice that represents standard IO streams (stdin, stdout, stderr) in QtJambi, so that i can get notified whenever a new line can be read or written.

Mythical answered 15/12, 2010 at 18:28 Comment(0)
C
9

Well, if you just want to have QIODevice implementation for those, you could use something like

QFile stdin = new QFile();
stdin.open(0, new QIODevice.OpenMode(QIODevice.OpenModeFlag.ReadOnly));
QFile stdout = new QFile();
stdout.open(1, new QIODevice.OpenMode(QIODevice.OpenModeFlag.WriteOnly));
QFile stderr = new QFile();
stderr.open(2, new QIODevice.OpenMode(QIODevice.OpenModeFlag.WriteOnly));

(Not 100% sure about Java syntax as I have only used Qt/C++.)

But if you want to have notifications, this won't work. In fact, I doubt that anything would work unless you have stdin/stdout redirected to something that supports notifications, like a socket. In that case you'd use QAbstractSocket.setSocketDescriptor() method.

Capwell answered 15/12, 2010 at 19:9 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.