2016-04-15 17 views
0

私は仮想ファイルシステム(メモリブロック、ファイル名テーブル、iノードなど)用のすべての基本コンポーネントを作成する必要があるプロジェクトに取り組んでいます。私のシステムは、固定メモリブロック(この場合は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

メモリマップファイルを仮想ディスクとして使用することをお勧めします。

関連する問題