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構文について100%確信がありません。)
ただし、通知が必要な場合は、これは機能しません。実際、ソケットのような通知をサポートするものにリダイレクトされているstdin/stdoutがない限り、何でも機能するとは思いません。その場合、qabstractsocket.setsocketdescriptor()メソッドを使用します。
所属していません StackOverflow