![]()
平成18年 春期 基本情報技術者 午後 問04
問04 ファイルの領域を確保するプログラム次のプログラムの説明及びプログラムを読んで,設問1,2に答えよ。 〔プログラム1 の説明〕 関数 CreateFile は,ディスクにファイルの領域を確保するプログラムである。 (1) ディスク上のファイルは,ファイル管理テーブル(以下,FCT という)と ファイル割当テーブル(以下,FAT という)で管理される。 なお,ファイル名は一意である。 (2) ディスクは,クラスタと呼ばれる一定の大きさの領域に区切られる。 クラスタには,1 から始まる番号が順に付けられている。 ファイルは,1 個以上のクラスタを使用する。 複数のクラスタを使用するファイルは,クラスタを連結リストとして。 使うので,必ずしも連続するクラスタを使用するとは限らない。 なお,クラスタの大きさは 1,024 バイトである。 (3) FCT は構造体の配列であり,構造体のメンバとその意味は次のとおりである。 構造体型: FCT[1000] { 文字型: Name, /* ファイル名 */ 日時型: Cdate, /* 作成日時 */ 整数型: Size, /* ファイルの大きさ */ 整数型: ClstS /* 先頭クラスタの番号 */ } 例えば,第 10 要素のメンバ Name の参照は,FCT[10].Name と表記する。 (4) FAT は,クラスタの使用状況を示す整数型の配列であり, クラスタの状態に応じて,次に示す値が格納されている。
(5) FCT と FAT は,ともに大域変数であり,配列の要素番号は 1 から始まる。
(6) FCT と FAT の使用例を,次に示す。 ここで,Name の内容が空文字列の場合は,その配列要素が未使用であることを示す。
(7) 関数 CreateFile がファイルの領域を確保する手順は,次のとおりである。 @ FAT 内を先頭から順番に調べて, 引数で指定されたファイルが格納できる必要最小限の個数のクラスタを確保する。 A FCT 内を先頭から順番に調べて,未使用要素(メンバ Name の内容が空文字列)に情報を記録する。 B FAT 内で必要なクラスタが確保できない場合や,FCT 内に未使用要素がない場合はエラーとする。 (8) 関数 CreateFile の引数と返却値の仕様を次に示す。
〔プログラム1〕
設問1 プログラム1 中の
a に関する解答群 ア FileSize ÷ CSIZE イ FileSize ÷ CSIZE + 1 ウ FileSize ÷ CSIZE − 1 エ (FileSize + CSIZE + 1) ÷ CSIZE オ (FileSize + CSIZE − 1) ÷ CSIZE b 〜 d に関する解答群 ア FAT[Idx] ← Idx イ FAT[Idx] ← Wk ウ FAT[Idx] ← −1 エ FAT[Wk] ← Idx オ FAT[Wk] ← Wk カ FAT[Wk] ← −1 キ Idx ← FAT[Idx] ク Idx ← FAT[Wk] ケ Idx ← Wk
設問2 関数 DeleteFile は,ファイルを削除するプログラムである。
次のプログラム2 中の
〔プログラム2〕
解答群 ア Idx ≦ CMAX イ Idx > CMAX ウ Idx ≦ CMAX and FCT[Idx].Name ≠ FileName エ Idx ≦ CMAX or FCT[Idx].Name ≠ FileName オ Idx > CMAX and FCT[Idx].Name ≠ FileName カ Idx > CMAX or FCT[Idx].Name ≠ FileName
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2024 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
| |||||||||||||||||||||||||||||||||||||||