コーディングのコメント:
機能Display_Informationはルートディレクトリからのファイルおよび登録簿情報をおよび読むことである。 構造で私達はあらゆるファイルのための32バイト情報か根[32]が付いている登録簿を読んでいる。
符号なし整数の配列名[8]およびext [3] 8.3 (8つは3つに点を打つ)フォーマットのdosのファイルまたはディレクトリ名のためである。 同様に1バイトは集りの開始の属性そして2バイトのためである。 長い無署名のintのサイズ; 4バイトのファイルのサイズを貯えることはある。
_bios_disk機能は構造のfinfoによって指定されるセクターを読み、操作の状態は結果で貯えられる。
512バイトのあらゆる情報から_bios_disk機能によって、ルートディレクトリ区域の端まで読みなさい、私達はディスクで貯えられるファイルおよび登録簿の情報を集め、スクリーンのそれらを表示する。
整数のfile_noは0から始まって店リストのファイルまたは登録簿の数、である。 ルートディレクトリのサイズは14のセクター一般にであり、ルートディレクトリは1.44MBの場合にはシリンダー=0、頭部= 0およびセクター=2およびフロッピー・ディスク3 ½から一般に始まる。
ユーザーが入力として特性に`m」か`m」を与えれば、次のセクターの情報はユーザーによる選択が`r」であるか、または`r」が回復機能呼ばれれば表示される。 機能のコーディングは()下記のように与えられた回復する:
/* 指定ファイルのための回復を始める機能 */
void recover(unsigned int *root,unsigned int len)
{
void clear_the_line(unsigned int r); /* スクリーンの列を取り除く機能 */
/* 指定ファイルを統合する機能 */
void integrate(long unsigned int,unsigned int,
unsigned int,unsigned int);
unsigned int file_no,i;
char ch;
unsigned int *loc;
unsigned int cylinder,head,sector;
unsigned int start;
long unsigned int size;
clear_the_line(21); /* 列第21を取り除きなさい */
clear_the_line(22); /* 列第22を取り除きなさい */
clear_the_line(23); /* 列第23を取り除きなさい */
clear_the_line(24); /* 列第24を取り除きなさい */
gotoxy(10,21);
cprintf("FNOを書き入れなさい。 ファイルの回復したいと思う");
scanf("%u",&file_no); /* ファイルを回復されるために得なさい */
loc=(root+(len*file_no/2));
|