6

我想在 QtJambi 中获得QIODevice代表标准 IO 流(stdin, stdout, stderr)的信息,以便在可以读取或写入新行时收到通知。

4

1 回答 1

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++。)

但是,如果您想收到通知,这将不起作用。事实上,我怀疑除非你将标准输入/标准输出重定向到支持通知的东西,比如套接字,否则任何事情都会起作用。在这种情况下,您将使用 QAbstractSocket.setSocketDescriptor() 方法。

于 2010-12-15T19:09:03.097 回答