あるアプリケーションが書き込みを行っているデータファイルがあるとします。データが読み込まれると、それは役に立たないので、スペースを節約するために削除することができます。システムレベルのファイルからすでに読み込まれたデータを消去する
1)ファイルが特定のサイズに達したら、 をロックします。2)読み込み中のインデックス(現在表示されているファイル内のバイトを表すポインタ)を見てください。このファイル 3)インデックス 4)ファイル 5の新たな始まりに読み出しコールのインデックスを更新します)その読み取り/書き込みが再開できるように、ファイルのロックを解除する前に来て、すべてのファイルデータを削除するためのvnodeテーブルに呼び出します
自分でシステムを経験することはあまりありませんが、システムレベルでこれを行うと、言語に依存しないことになります(つまり、アプリケーションがJava呼び出しやPython呼び出しを使用して読み書きする場合いいえ問題)。
データファイルはunix v6ファイルシステムにあります。ファイルのサイズを監視してデータを削除することは問題ありませんが、1)vnodeテーブルの他のエントリにアクセスして、ファイルの読み込み位置を確認し、2)読み取りポインタを更新するシステムコールを見つけることができません。これらのシステムコール。
良いキャッチ - 私は、Linuxサーバー上で見つけられるようなUNIX系ファイルシステムを意味していました(私は基本的な概念を学ぶためにUNIX v6について読んでいました)。 – pqx994
私は作家ではないのであなたの提案はうまくいかないようです - 私のものではない現在実行中のアプリケーションがファイルに書き込んでいると想像してください。私はアプリケーションを編集することはできませんし、それがどのように書いているのですか、私はファイル名を知っており、それにアクセスできます。 – pqx994
@ pqx994アプリケーションでFIFOに書き込むことができますか? –