如何在qtjambi中获取stdin,stdout,stderr文本流的qiodevice实例?
题
我想得到 QIODevice
代表标准IO流(stdin
, stdout
, stderr
)在qtjambi中,以便每当可以读取或编写新行时都能通知我。
解决方案
好吧,如果您只想为这些实施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 ++,因此不确定Java语法。)
但是,如果您想通知,这将行不通。实际上,我怀疑除非您将STDIN/Stdout重定向到支持通知的内容,例如插座,否则任何事情都会起作用。在这种情况下,您将使用qabstractsocket.setsocketdescriptor()方法。
不隶属于 StackOverflow