這是一個利用 Windows shutdown 指令的惡作劇程式,強制使用者輸入特定字串才能取消關機。雖然程式碼簡單,但涉及系統指令呼叫與安全風險,僅供學習參考,嚴禁用於惡作劇或破壞。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char input[20];
// 設定 120 秒後關機
system("shutdown -s -t 120");
while (1) {
printf("請輸入「我是豬」三個字,否則電腦將在 2 分鐘後關機:\n");
scanf("%19s", input); // 防止緩衝區溢位
if (strcmp("我是豬", input) == 0) {
// 取消關機
system("shutdown -a");
printf("關機已取消。\n");
break;
} else {
printf("輸入錯誤,倒數繼續...\n\n");
}
}
return 0;
}
1. system() 函數
呼叫作業系統命令列指令。shutdown -s -t 120 表示 120 秒後關機,shutdown -a 取消排程關機。
2. 字串比較
使用 strcmp 比較輸入字串與目標字串,相等時回傳 0。
3. 無限迴圈與跳出
while(1) 持續要求輸入,正確時 break 跳出。
shutdown 參數在 Windows/Linux/macOS 不同若中招,可在「執行」(Win+R) 中輸入 shutdown -a 取消關機,或開啟命令提示字元執行同指令。
理解 system() 呼叫機制、字串處理、迴圈控制,但實務開發中應避免直接呼叫系統指令,改用平台 API(如 Windows InitiateSystemShutdownEx)。