我建立这个文件系统C.在我上这仅仅是创建一个简单的文件系统,在内存中的工作分配的第一步的时刻。我的问题更多基于C而不是Unix文件系统。我试图“模拟”一个原始磁盘。我有以下结构:创建文件系统,需要Ç建议
struct disk {
void *data;
unsigned int numOfBlocks;
};
让我们假设这个磁盘上的块将是512个字节(像原来的UNIX文件系统)。我定义了一些函数来创建磁盘,从磁盘读取数据并写入磁盘。那么我的工作就是实现诸如数据块,i节点块,超级块等各种东西。
请看上面的void *data
变量。我希望这是一个二维数组。它应该是一个块数组的数组。所以...最有意义的是使用这样的东西。
unsigned char *data[30][512]; // Assuming the disk holds 30 blocks of 512 bytes each
这里谈到的问题:如果我有定义为代表的i节点,一个超级块,或数据块,其它结构和每个还具有struct
大小的512个字节,怎么可以正确施放此unsigned char *
到i节点struct
,或数据struct
等?
谢谢。
我的问题岂不等于如何访问数据变量的人物......这是怎么走的'无符号char'一个512字节数组实例,并将其转换为其他类型的struct'的'是512个字节长。更新了 – MasterGberry
,您需要设置第一个维度的大小。 –