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.

tzador
  • 2,535
  • 4
  • 31
  • 37

1 Answers1

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.

Sergei Tachenov
  • 24,345
  • 8
  • 57
  • 73