0
我正在創建一個項目,我需要爲虛擬文件系統(內存塊,文件名錶,inode等)創建所有基本組件。我的系統需要能夠創建一個由固定內存塊組成的單層(無子目錄)「磁盤」(本例中爲256字節)。我理解使用文件系統的所有基本組件和它們的功能,但我不確定如何開始製作用於分配的內存塊。 我沒有爲inode或文件表設計過結構(我需要自己創建),但我相信我有設置用於製作「磁盤」的基本內存分配,然後可以格式化和加上隨後的數據結構:虛擬文件系統內存塊創建
int make_disk(char const *name)
{
int c, dex;
char buff[BLOKSIZE];
if(!name)
{
fprintf(stderr, "Make: Invalid Name\n");
return -1;
}
if((c=open(name, O_WRONLY | O_CREAT | O_TRUNC, 0644)) < 0)
{
perror("Cannot Open File\n");
return -1;
}
memset(buff, 0, BLOKSIZE);
for(dex=0;dex<NUMBLOKS;dex++)
{
write(c, buff, BLOKSIZE);
}
close(c);
return 0;
}
我的主要問題是我在正確的軌道盡可能正確地分配256字節的內存塊將被用於存儲文件和元數據存儲上一次這個「盤」是正確的分區?