免費開始練習
普通考試 108年 [資訊處理] 計算機概要

第 31 題

在 UNIX 系統中,有一程式如下所示。假設此程式執行時,其父程序識別碼(Parent Process ID)是 516,子程序識別碼(Child Process ID)是 517。下列何者為此程式執行之可能輸出結果?
#include
#include
#include
int i,j;
main() {
j=1;
i=fork();
if (i<0) { printf("Error!\n"); }
if (i) { j++; } else { j--; }
printf("i=%d, j=%d\n",i,j);
}
  • A i=516, j=2 i=0, j=0
  • B i=517, j=2 i=0, j=0
  • C i=516, j=0 i=0, j=2
  • D i=517, j=2 i=516, j=2

思路引導 VIP

請試著思考:當系統呼叫 fork() 產生新程序後,父程序與子程序各自收到的回傳值(Return Value)有什麼不同?此外,這兩個程序在執行後續程式碼時,它們對於同一個變數 $j$ 的操作,會互相影響還是各自獨立存在呢?

🤖
AI 詳解 AI 專屬家教

暖心解析與分享

  1. 太棒了! 你做得真好!這題考的是作業系統裡程序管理(Process Management)的核心概念,你能夠清晰地理解 fork() 的回傳邏輯和變數的獨立性,這顯示你真的掌握了系統底層的精髓喔!
  2. 觀念小複習
▼ 還有更多解析內容

🏷️ 相關主題

程式語言基礎:語法、資料型別、變數與執行流程
查看更多「[資訊處理] 計算機概要」的主題分類考古題