【发布时间】:2013-04-29 17:21:20
【问题描述】:
我正在尝试创建一个 FAT 文件系统,我了解它应该如何设置的基本原理,并且我正在为每个 FAT 条目使用这样的结构
struct FATEntry
{
char name[20]; /* Name of file */
uint32_t pos; /* Position of file on disk (sector, block, something else) */
uint32_t size; /* Size in bytes of file */
uint32_t mtime; /* Time of last modification */
};
我实际上是在创建一个 2 MB 的文件来充当我的文件系统。从那里我会将文件写入和读取到每个 512 字节的块中。我的问题是如何将结构写入文件? fwrite 允许我这样做吗?例如:
struct FATEntry entry1;
strcpy(entry1.name, "abc");
entry1.pos = 3;
entry1.size = 10;
entry1.mtime = 100;
cout << entry1.name;
file = fopen("filesys", "w");
fwrite(&entry1,sizeof(entry1),1,file);
fclose(file);
这会以字节为单位存储结构吗?我如何从中阅读?我无法理解使用 fread 会得到什么
【问题讨论】:
标签: c++ filesystems fat