[理工] [OS]恐龍本習題ch3

看板Grad-ProbAsk作者 (saponevol23)時間12年前 (2012/01/19 20:07), 編輯推噓2(203)
留言5則, 1人參與, 最新討論串1/1
(3.11) 假定parent process與child process之pid值為2600跟2603 int main() { pid_t pid, pid1; pid=fork(); if(pid<0){error,略} else if(pid==0){ /*child process*/ pid1 = getpid(); printf("child: pid = %d",pid); /*A*/ printf("child: pid1= %d",pid1); /*B*/ } else{ /*parent process*/ pid1 = getpid(); printf("parent: pid = %d",pid); /*C*/ printf("parent: pid1 = %d",pid1); /*D*/ wait(NULL); } return 0; } 求ABCD行的輸出值 答案給A=0 B=2603 C=2603 D=2600 不是很懂 有請高手解答 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.255.180.103

01/19 20:09, , 1F
A不用講了吧 仔細看那if
01/19 20:09, 1F

01/19 20:10, , 2F
getpid就是回傳process自己真正的id
01/19 20:10, 2F

01/19 20:11, , 3F
所以B的答案提示很明顯 就是/*child process*/的id
01/19 20:11, 3F

01/19 20:22, , 4F
爸爸的回傳值就會是小孩子的ID 所以C跟B一樣
01/19 20:22, 4F

01/19 20:22, , 5F
D就是爸爸自己的ID 如題目所講
01/19 20:22, 5F
文章代碼(AID): #1F60UL8l (Grad-ProbAsk)