49 在Linux/Unix系統中,mkfifo()函數的主要功能為何?
(A) 刪除導管檔案
(B) 建立一個FIFO特殊檔案
(C) 修改導管權限
(D) 讀取導管內容
統計: A(0), B(8), C(0), D(0), E(0) #3399896
詳解 (共 2 筆)
【第一步:找關鍵字】
mkfifo()
→ mk(make,建立)+ fifo
FIFO(First In First Out,先進先出)
→ 一種「管道(pipe)」
? 重點:
「mk」幾乎一定是「建立」
關鍵觀念:
? mkfifo = 建立管道檔案
【第二步:白話翻譯】
這題在問:
?「mkfifo 這個函數是用來做什麼的?是建東西、刪東西,還是讀東西?」
【第三步:解題思路】
這題在考什麼觀念?
? Linux IPC(程序間通訊)中的 FIFO(命名管道)
解題步驟
-
看到 mk
? 幾乎 100% 是「建立」
-
了解 FIFO 是什麼
? FIFO(先進先出)是一種「管道」
? 用來讓兩個程式傳資料
-
mkfifo 的功能
? 建立「命名管道(named pipe)」
原理與規則
FIFO(命名管道)是什麼?
→ 一種特殊檔案,用來讓不同程式溝通
白話:
? 像一條「水管」
-
一端寫資料
-
另一端讀資料
mkfifo() 做什麼?
→ 在系統中建立這條「水管」
生活比喻:
? mkfifo 就像:
「在牆上裝一條水管」
之後:
-
A 往裡面倒水(write)
-
B 從另一端接水(read)
【第四步:選項分析】
-
(A) 刪除導管檔案
❌ 錯
→ 刪除用 unlink() 或 rm
-
(B) 建立一個 FIFO 特殊檔案
✅ 正確
→ mkfifo 就是 create FIFO
-
(C) 修改導管權限
❌ 錯
→ 權限修改用 chmod
-
(D) 讀取導管內容
❌ 錯
→ 讀資料用 read()
【觀念補充與延伸】
核心觀念定位
這題屬於:
? 作業系統 → IPC(程序間通訊)
? 常考 FIFO / pipe
法條或定義
FIFO(命名管道)
→ 一種特殊檔案,用於程序間通訊,資料依序傳輸
白話:
? 「排隊進,排隊出」
觸類旁通(舉一反三)
對比概念:
-
pipe(匿名管道)
→ 只能親子程序用 -
FIFO(命名管道)
→ 不同程序也能用
? 超常考!
變化題型:
-
問 pipe vs FIFO 差異
-
問 mkfifo vs open
-
問 IPC 類型
【記憶口訣】
?「mk 就是做,fifo 就是管」
或:
?「mkfifo=做一條水管」
【常見陷阱】
學生最容易搞混的地方
-
以為 mkfifo 是操作資料
-
忘記 mk = create
心理盲點
看到 FIFO 就想到「讀寫」
? 但 mkfifo 是「建立」,不是操作
避坑指南
看到:
? mk 開頭
→ 一律優先想:
建立(create)