14 關於檔案位置指標的敘述,下列何者正確?
(A) 同一個檔案的所有程序共用同一個位置指標
(B) 開啟檔案時位置指標預設在檔案末尾
(C) 每次讀寫操作後位置指標會自動更新
(D) 位置指標只能向前移動不能向後移動

答案:登入後查看
統計: A(1), B(2), C(5), D(0), E(0) #3399861

詳解 (共 2 筆)

#6786599
1. 題目解析 本題考查的是對檔案位置指...
(共 934 字,隱藏中)
前往觀看
0
0
#7318721

【第一步:找關鍵字】

關鍵字:

  • 檔案位置指標(file pointer)(記錄「現在讀到哪裡」)

  • 開啟檔案

  • 讀寫操作

  • 自動更新(重要考點)

? 這題重點在:
檔案讀寫時,指標會怎麼動

【第二步:白話翻譯】

這題在問:

? 「當你讀或寫檔案時,系統怎麼記錄你現在讀到哪一段?」

【第三步:解題思路】

這題在考什麼觀念?

? 檔案讀寫機制(File I/O pointer behavior)

解題步驟

  1. 想像讀檔案的過程

  2. 每讀一次,位置會不會改變?

  3. 找出正確描述

原理與規則(生活比喻)

把檔案想成一本書:

  • 位置指標=你讀到哪一頁的書籤

當你:

  • 看一頁 → 書籤會往後移

  • 寫內容 → 書籤也會往後移

? 系統會自動幫你移動書籤

【第四步:選項分析】

(A) 為什麼錯?

✘ 錯

不同程序(process):

? 各自有自己的檔案描述符(file descriptor)
? 也有自己的位置指標

? 不會共用

(B) 為什麼錯?

✘ 錯

一般開啟檔案(例如 r 模式):

? 預設在「檔案開頭」

只有特定模式(如 a append)才在尾端

(C) 為什麼對?

✔ 正確(本題答案)

? 每次讀或寫後:

位置指標會自動往前移

例如:

  • 讀 10 bytes → 指標往後 10

  • 寫資料 → 指標往後移

(D) 為什麼錯?

✘ 錯

? 可以用函數改變位置,例如:

  • seek()(跳到指定位置)

? 可以前進也可以後退

【觀念補充與延伸】

核心觀念定位

? 系統程式 / 檔案系統
? 常考基本題

法條或定義

  • 檔案位置指標(File Pointer)
    用來記錄目前讀寫檔案的位置

常見操作

操作 效果
read 指標往後移
write 指標往後移
seek 手動移動

觸類旁通(舉一反三)

對比概念

  • fseek() vs 自動移動
    ? fseek:手動控制
    ? read/write:自動移動

變化題型

  • 問:append 模式會怎樣?
    ? 每次寫都在檔案尾端

【記憶口訣】

? 「讀寫就往後,seek 可前後」

0
0