4

Linux の端末でstdoutにデータを書き込むと、ディスク領域が占有されるかどうかを知りたいです。man ページでstdoutttyに関する情報を調べようとしましたが、質問に対する回答がないようです。

ヒントをありがとう。

openwrtをインストールしたルーターを持っていますが、ルーターの合計容量は 2MB で、現在は 12KB しか残っていません。そして、bash スクリプトを実行して、openwrt システムの端末に情報を出力したいと考えています。したがって、データを標準出力に出力するときにディスク容量を占有できるかどうかを知りたいです。

4

2 に答える 2

5

stdoutは特定のファイルや場所 (ディスク、メモリなど) ではなく、概念です。通常、Linux アプリケーションで stdout について話すときは、ファイルのようなオブジェクト (つまり、サポート (書き込み、フラッシュなど)) を意味します。

出力はディスク上の実際のファイルにリダイレクトできます。その場合、stdout への書き込みはディスク領域を使い果たす可能性があります。

于 2013-08-05T08:30:37.447 に答える
4

出力がリダイレクトされていない限り (eg へのパイプtee、または>シェル リダイレクト演算子を使用したファイルへのパイプを使用)、いいえ、出力はファイル システムに送信されません。コンソール (または端末エミュレーター) への出力はそのままでは遅く、ファイル システムを介して渡すとさらに遅くなり、大量の出力がある場合はディスクのスピンダウンが許可されない場合があります。

ただし、出力が実際に書き込まれる前にプロセスをスワップアウトする必要があると OS が判断した場合は、スワップ スペースに格納される可能性があります。

于 2013-08-05T08:29:20.137 に答える