5

Linux サーバーでコマンドライン ツールとして使用される一連の Java プログラムがあります。それらのほとんどは、Perl のTerm::ProgressBar.

STDERR が端末に送信されるたびにプログレス バーを表示し、STDERR がリダイレクトされると自動的に無効になるようにして、リダイレクトされたデータにプログレス バーのすべての種類が含まれないようにしたいと考えています。

チェックは私の最初の考えでしたが、STDERRがまだ端末に接続されていても、System.console() == nullSTDOUTをリダイレクトするだけで十分です。trueSTDERR に固有のことを確認できるものはありますか? Linux 固有のソリューション、またはネイティブ API を使用するソリューションは、私のニーズには問題ありません。

4

2 に答える 2

1

あなたが探しているのはisatty(3)、であると思いますunistd.h。ファイル ハンドルがリダイレクトされたかどうかを判断する方法はありませんが、まだインタラクティブかどうかはわかります。ttyGNU coreutilsのコマンドのソースを参照してください。

于 2013-08-20T15:17:53.030 に答える