2016-04-15 88 views
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字節的內存塊將被用於存儲文件和元數據存儲上一次這個「盤」是正確的分區?

回答

0

最好的辦法是使用內存映射文件作爲虛擬磁盤。