私は C で独自の仮想ファイル システムを構築しています。
ここで、ギャップを探してそれらを閉じる、ある種のデフラグ方法を実装したいと考えています。
したがって、ファイル 1 がサイズ 10 で位置 X にあり、ファイル 2 がサイズ 20 で位置 Z にある場合、位置 Y に移動したいと考えています。
私の考えは、ファイル 2 のサイズを取得し、ファイル 1 のサイズからそれを差し引き、結果を使用してファイル 2 を結果と同じくらい左にシフトすることです。
実用的なソリューションを思い付くことができないため、疑似コードがあります。
for (int i = 0; i < files; i++)
//look for inconsistencies/gaps.
if (found gaps)
file 2 - file 1 = x;
shiftfiletotheleft x bytes;
事前にアイデアと回答をありがとう。