我想在QtJambi中获得表示标准IO流(QIODevicestdinstdout)的stderr,以便每当可以读取或写入新行时都可以得到通知。

最佳答案

好吧,如果您只是想要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));

(因为我只使用过Qt/C++,所以不能100%地确定Java语法。)

但是,如果您想收到通知,则此操作将无效。实际上,我怀疑除非将stdin/stdout重定向到支持通知的东西(如套接字),否则其他任何东西都不会起作用。在这种情况下,您将使用QAbstractSocket.setSocketDescriptor()方法。

关于java - 如何在QtJambi中获取stdin,stdout,stderr文本流的QIODevice实例?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4453497/

10-09 01:57