43 關於random_file_update()與random_file_update_all()這兩個函數的差異,下列何者 正確?
(A) 前者只能更新一個區塊,後者可更新多個區塊
(B) 前者不需要鎖定,後者需要鎖定
(C) 前者使用循序讀寫,後者使用隨機讀寫
(D) 前者只能讀取,後者可以讀寫
統計: A(8), B(0), C(0), D(0), E(0) #3399890
詳解 (共 2 筆)
【第一步:找關鍵字】
random_file_update()
→ random(隨機)+ update(更新)
? 重點:隨機位置更新「單一操作」
random_file_update_all()
→ update_all(全部更新)
? 重點:一次處理「多個或全部區塊」
關鍵線索:
?「update vs update_all」= 單一 vs 全部
【第二步:白話翻譯】
這題在問:
?「這兩個函數,一個是只改一小部分,另一個是一次改很多或全部,它們差在哪?」
【第三步:解題思路】
這題在考什麼觀念?
? 檔案系統中「隨機存取(random access)」與「批次更新(bulk update)」的差異
解題步驟
-
看函數名稱
-
random_file_update() → 單次更新
-
random_file_update_all() → 全部更新
-
-
判斷差異
→ 一個處理「單一區塊」
→ 一個處理「多個區塊」 -
對應選項
原理與規則
隨機存取(Random Access)是什麼?
→ 可以直接跳到檔案某個位置操作(像直接翻到書的某一頁)
生活比喻:
-
random_file_update()
? 像改「某一頁內容」 -
random_file_update_all()
? 像「整本書重新修訂」
【第四步:選項分析】
-
(A) 前者只能更新一個區塊,後者可更新多個區塊
✅ 正確
→ 符合「單一 vs 全部」的命名邏輯
→ update vs update_all
-
(B) 前者不需要鎖定,後者需要鎖定
❌ 錯
→ 鎖定(lock)與否取決於「是否有並行存取」
→ 不是這兩個函數名稱的本質差異
-
(C) 前者使用循序讀寫,後者使用隨機讀寫
❌ 錯
→ 兩者都已經叫 random(隨機)
→ 不可能一個是循序
-
(D) 前者只能讀取,後者可以讀寫
❌ 錯
→ 兩者都有 update(更新)
→ update = 一定是「寫入」
【觀念補充與延伸】
核心觀念定位
這題屬於:
? 檔案系統(File System)與 I/O 操作
? 偏「名稱判讀型考題」(常考!)
法條或定義
Random Access(隨機存取)
→ 可直接定位到資料位置進行讀寫
白話:
? 不用從頭讀,可以「直接跳頁」
觸類旁通(舉一反三)
對比概念:
-
Sequential Access(循序存取)
→ 一頁一頁翻(像磁帶) -
Random Access(隨機存取)
→ 直接跳頁(像硬碟)
變化題型:
-
問 random vs sequential 差異
-
問 update vs read 的意義
-
用函數名稱陷阱(超常考)
【記憶口訣】
?「update一筆,update_all全部」
或更直白:
?「有 all 就是全改」
【常見陷阱】
學生最容易搞混的地方
-
被 random 誤導,以為在考「存取方式」
-
忽略真正關鍵字是 all
心理盲點
看到 random → 直接選「隨機 vs 循序」
? 但其實兩個都是 random!
避坑指南
解題順序:
-
先看「all」
-
再看「功能動詞(update)」
-
最後才看 random
? 「all」優先級最高