作業系統›Ch4 行程與執行緒管理第 3 題/共 70 題
3. fork()、Process Creation
#OS-04-003易fork()Process Creation
下列程式碼執行後,下列何者是正確的輸出結果描述?
#include <sys/types.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/wait.h>
int value = 10;
int main()
{
pid_t pid;
pid = fork();
if (pid == 0) {
value += 10;
printf("A = %d\n", value);
return 0;
}
else if (pid > 0) {
wait(NULL);
print("B = %d\n", value);
return 0;
}
}
參考答案與解析
答案 (A)。fork()後child(pid==0)執行value+=10得value=20,印出A=20;parent各自有獨立位址空間,其value仍為原本的10,B=10。A+B²=20+100=120,符合(A)。其餘選項代入A=20,B=10皆不成立。
📄 台大114
▤完整推導請見《WH 資工筆記 · 作業系統》Ch4 行程與執行緒管理