50 信息排隊中msgget()函數的主要功能是什麼?
(A) 發送信息
(B) 接收信息
(C) 產生或獲取信息排隊
(D) 刪除信息排隊
統計: A(0), B(2), C(5), D(0), E(0) #3399897
詳解 (共 2 筆)
【第一步:找關鍵字】
msgget()
→ msg(message,訊息)+ get(取得)
? 重點字:「get」=取得 / 建立
信息排隊(Message Queue)
→ 一種 IPC(程序間通訊)機制
? 讓程式之間「排隊傳訊息」
關鍵觀念:
? msgget =「拿到或建立 message queue」
【第二步:白話翻譯】
這題在問:
?「msgget 這個函數,是用來送訊息、收訊息,還是建立一個訊息排隊?」
【第三步:解題思路】
這題在考什麼觀念?
? System V IPC(訊息佇列)相關函數功能
解題步驟
-
先看函數名稱
-
msgget → 取得 / 建立
-
msgsnd → 發送
-
msgrcv → 接收
-
msgctl → 控制 / 刪除
-
判斷功能
? msgget = 「建立或取得 message queue」
原理與規則
Message Queue(訊息佇列)是什麼?
→ 一種「排隊傳訊息」的機制
白話:
? 像 LINE 訊息:
-
A 傳訊息進去
-
B 之後再讀出來
msgget() 做什麼?
? 用 key(識別碼)找到 queue
? 如果沒有,可以建立一個
生活比喻:
? msgget 就像:
「去郵局申請或找到一個信箱」
之後:
-
msgsnd → 投信
-
msgrcv → 收信
【第四步:選項分析】
-
(A) 發送信息
❌ 錯
→ 發送是 msgsnd()
-
(B) 接收信息
❌ 錯
→ 接收是 msgrcv()
-
(C) 產生或獲取信息排隊
✅ 正確
→ msgget 的核心功能
-
(D) 刪除信息排隊
❌ 錯
→ 刪除是 msgctl()
【觀念補充與延伸】
核心觀念定位
這題屬於:
? 作業系統 → IPC(訊息佇列 Message Queue)
? API 功能對應題(必考)
法條或定義
System V Message Queue
→ 一種 IPC 機制,透過 queue 傳遞訊息
常見函數對照:
| 函數 | 功能 |
|---|---|
| msgget | 建立 / 取得 queue |
| msgsnd | 發送訊息 |
| msgrcv | 接收訊息 |
| msgctl | 控制 / 刪除 |
觸類旁通(舉一反三)
對比概念:
-
pipe → 直接傳
-
message queue → 排隊傳
-
shared memory → 共用空間
? IPC 三大類常一起考!
變化題型:
-
問哪個函數送/收
-
問 IPC 類型差異
-
問 key 與 queue 關係
【記憶口訣】
?「msgget 拿 queue,msgsnd 傳,msgrcv 收」
【常見陷阱】
學生最容易搞混的地方
-
把 get 當成「接收」
→ 其實是「取得資源」
心理盲點
看到 msg → 就想「傳訊息」
? 但 msgget 是「準備環境」
避坑指南
解題技巧:
? 看動詞:
-
get → 拿 / 建
-
snd → 送
-
rcv → 收