Linux中的文件系统

|                                                                                                                       
已邀请:
您需要做的是用C打开您复制的图像。您需要读入此数据,了解FAT12格式,对其进行修改,然后再将其写回。 使用\“ man \”查看fopen,fread,fclose。您可能需要制作一个FAT结构数组,使用fread读取每个FAT条目,然后使用新条目修改数组并使用fwrite将其写回。您可能会想使用fseek跳来跳去。我希望您想将新条目写入磁盘FAT表(原文如此),并且还知道可用空间在哪里,将实际文件写入那里。 1)打开 2)将FAT读取到数组中(根据需要使用fseek) 3)用新条目修改数组 4)将新文件的数据写到映像的适当空闲区域 5)将更新后的数组写回FAT 6)关闭 7)测试图像 您可以通过以下方式测试图像: mkdir / mnt / test -p 挂载-o循环-t vfat test.img / mnt / test 如果失败了,那么您就搞砸了。使用hexdump检查您的文件。 如果可行,请确保先卸载它,然后再次修改文件。     
据我了解,您应该在纯用户空间程序中从磁盘映像读取数据。换句话说:您不需要编写任何内核代码或驱动程序。 仅使用标准C API即可完成此任务,而无需进行特定于Linux的调用。     
我已经为以前的雇主编写了一个完整的实现。幸运的是,随着二进制格式和文件系统的发展,FAT非常受支持。 对此的规范参考是Microsoft规范(FAT由Bill Gates在1976年提出),它涵盖了非常相似的FAT12,FAT16和FAT32。 在用户空间中工作时,C stdio库将满足您的所有需求。     

要回复问题请先登录注册