Qtjambiでstdin、stdout、stderrテキストストリームのqiodeviceインスタンスを取得するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/4453497

  •  10-10-2019
  •  | 
  •  

質問

取得したいです 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()メソッドを使用します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top