首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 語言惡作劇程式:關機倒數與密語解除(僅供教學了解 system 呼叫)

     編輯:關於C語言

C 語言惡作劇程式:關機倒數與密語解除(僅供教學了解 system 呼叫)

程式碼 (Windows)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {
    char input[20];
    system("shutdown -s -t 120"); // 120 秒後關機
    while (1) {
        printf("請輸入 \"我是豬\" 取消關機: ");
        if (scanf("%19s", input) != 1) continue;
        if (strcmp(input, "我是豬") == 0) {
            system("shutdown -a"); // 取消關機
            puts("關機已取消");
            break;
        } else {
            puts("不誠實喔,繼續倒數...");
        }
    }
    return 0;
}

原理解析

  • system() 呼叫作業系統命令解析器執行字串。
  • shutdown -s -t 120:排程 120 秒後關機 (-s 關機, -t 時間)。
  • shutdown -a:中止排程關機 (-a abort)。
  • goto 改用 while(1) 更結構化。

⚠️ 嚴重警告

  • 僅供教學示範 system() 與字串比對。
  • 嚴禁用於惡作劇、惡意程式、任何未經授權的電腦。
  • 可能造成資料遺失、工作中斷、法律責任。
  • Linux/macOS 指令不同 (shutdown -h +2, shutdown -c),跨平台需判斷 OS。

教學替代:安全的倒數計時器

// 純 C 實作,不呼叫系統關機
for (int i = 10; i >= 0; --i) {
    printf("\r倒數: %2d 秒 ", i);
    fflush(stdout);
    sleep(1); // Windows 用 Sleep(1000) 需 #include <windows.h>
}
puts("\n時間到 (僅示範)");

請將技術用於正途,尊重他人電腦與資料安全。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved