如何在QtJambi中获取stdin,stdout,stderr文本流的QIODevice实例?

时间:2010-12-15 18:28:53

标签: java qt io qt-jambi

我想在QtJambi中获得代表标准IO流(QIODevicestdinstdout)的stderr,这样我就可以在新线路时收到通知可以读或写。

1 个答案:

答案 0 :(得分:9)

好吧,如果您只想为这些实现QIODevice,可以使用类似

的内容
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));

(不是100%肯定Java语法,因为我只使用过Qt / C ++。)

但是如果您想要通知,这将无效。事实上,我怀疑除非你将stdin / stdout重定向到支持通知的东西,比如套接字,否则一切都会有效。在这种情况下,您将使用QAbstractSocket.setSocketDescriptor()方法。