奇妙なバッファサイズ

奇妙なバッファサイズ

今日、私は次の興味深い命令セットを見つけました。

$ seq 5 > alfa.txt
$ awk '{print 6 > ARGV[1]} 1' alfa.txt
1
2
3
4
5

$ cat alfa.txt
6
6
6
6
6

最初の質問は、なぜ1つではなく複数のものを得たのです6が、毎回閉じる必要があることを覚えていました。

awk '{print 6 > ARGV[1]; close(ARGV[1])} 1' alfa.txt

しかし、混乱しているのは、最初から入力を削除しても、ファイル全体を閲覧して読み取ることができるということです。私の考えでは、Awkが実際にバッファに書き込んで最後に、またはバッファがいっぱいになるたびに実際のファイルに書き込むようです。

後者が真であれば、バッファサイズはいくらですか?

ベストアンサー1

実装によって異なりますが、awkが入力を開いた後に出力ファイルを開くことがわかります。 awkが読み込んだオープンファイル記述子を除いて、元の入力ファイルは失われます。

これを行うことができるのは単にawkではありません。多くのアプリケーションで一般的です。

ps:バッファはディスクです(質問ではサイズを決定できません)。

おすすめ記事