パイピング先のファイルをどのように消去または消去できますか?

パイピング先のファイルをどのように消去または消去できますか?

ファイルにパイプされるプロセスがあるとしましょう。

yes > foo

これでファイルを消去または空にしたいのですが、fooプロセスはファイルに書き込もうとしています。つまり、ファイルを消去した後にファイルの再入力を開始します。

可能ですか?

ベストアンサー1

yes >> fooファイルを消去するにはyes > foo、単独で使用:>foo

yes >> foo理由readfooで開くO_APPEND。これにより、ファイルオフセットは各書き込みの前にファイルの末尾に配置されます。

したがって、yesファイルに書き込むfooたびにファイルポインタがになりますfoo。また、: > fooファイルをゼロバイトに切り捨てます。 0バイトの「終了」でファイルポインタの位置が変更され、0yesバイトの先頭で次の書き込みが再開されます。fooO_APPENDfoo

おすすめ記事