26 關於信號行動(action)的敘述,下列何者錯誤?
(A) 程序可以選擇忽略信號
(B) 程序可以選擇接住(catch)信號
(C) 程序可以選擇採取預設行動
(D) 所有信號都可以被忽略或攔截

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

詳解 (共 2 筆)

#7318867

【第一步:找關鍵字】

關鍵字:

  • 信號(signal)(作業系統通知程序的機制)

  • 忽略(ignore)

  • 接住(catch)

  • 所有(陷阱關鍵字)

? 「所有」幾乎一定是陷阱!

【第二步:白話翻譯】

這題在問:

? 「當作業系統發出信號(像 Ctrl+C)時,程式可以怎麼處理?哪個說法是錯的?」

【第三步:解題思路】

這題在考什麼觀念?

? Signal 的三種處理方式 + 特例信號

解題步驟

  1. 記住 signal 的三種處理方式

  2. 想想有沒有「例外不能改的」

  3. 找出錯誤敘述

原理與規則(生活比喻)

把 signal 想成「老闆通知」:

老闆叫你做事(signal)時,你可以:

  1. 忽略(ignore) → 當沒聽到

  2. 接住(catch) → 自己決定怎麼處理

  3. 預設(default) → 照公司規定做

? 但有些命令你「不能不理」

【第四步:選項分析】

(A) 為什麼對?

✔ 正確

? 程序可以忽略某些信號

例如:

  • SIGINT 可以 ignore(理論上)

(B) 為什麼對?

✔ 正確

? 可以用 handler 接住信號

例如:

ㅤㅤ
signal(SIGINT, handler);
ㅤㅤ

(C) 為什麼對?

✔ 正確

? 可以使用系統預設行為

例如:

  • 終止程序

  • 產生 core dump

(D) 為什麼錯?

✘ 錯誤(本題答案)

「所有信號都可以被忽略或攔截」

? 錯在「所有」

有兩個例外:

  • SIGKILL(強制終止)

  • SIGSTOP(強制暫停)

? 這兩個:

  • 不能 ignore

  • 不能 catch

【觀念補充與延伸】

核心觀念定位

? 作業系統 / 行程管理(process control)
? 中高頻考點

法條或定義

  • Signal(信號)
    作業系統用來通知程序發生某些事件的機制

Signal 三種處理方式

方法 說明
ignore 忽略
catch 自訂處理
default 預設行為

重要例外(必背!)

信號 特性
SIGKILL 無法攔截或忽略
SIGSTOP 無法攔截或忽略

觸類旁通(舉一反三)

對比概念

  • SIGINT(Ctrl+C)

  • SIGTERM(正常終止)

  • SIGKILL(強制終止)

變化題型

  • 問:哪個 signal 無法被捕捉?
    ? SIGKILL

【記憶口訣】

? 「KILL 跟 STOP,誰都擋不住」

【常見陷阱】

學生最容易搞混的地方

以為所有 signal 都能控制

心理盲點

看到「所有」沒有警覺

避坑指南

? 看到「所有」:

一定問自己:
「有沒有例外?」

0
0
#6786497
1. 題目解析 這道題目詢問的是有關信...
(共 917 字,隱藏中)
前往觀看
0
0