我用 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;
提前感谢您的想法和答案。