Re: [理工] 101交大OS
看了前幾天版友問的這題,回文有點混亂,自己大概算出了答案
把自己想法寫出來,順便想確定一下自己的概念對不對(有錯請糾正我)
#include <stdio.h>
main()
{
char buffer[1024]="";
int i,pid;
if(fork()==0)stract(buffer,"a"); //1號fork
fork();stract(buffer,"b"); //2號fork
if(fork()>0){ //3號fork
stract(buffer,"c");
printf("%s\n",buffer);
fflush(NULL);
}
}
求印出的abc個數
[我的想法]
P0
/ | \
P1 P2 P3
/ \ |
P12 P13 P23
|
P123
P0代表父代
Px x代表由程式第幾個fork所生出
(例.P12即 由第1號fork生出的子代,再經2號fork所生出,就是第三代)
P0, 印bc
P1,P12 印abc
P2 印bc 所以總共2a,4b,4c
P3,P23,P13,P123其他因為這些process新成功fork出來的此時回傳0 不符合>0所沒印
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.35.165.111
推
11/25 21:26, , 1F
11/25 21:26, 1F
推
11/25 22:20, , 2F
11/25 22:20, 2F
→
11/25 22:20, , 3F
11/25 22:20, 3F
→
11/25 22:22, , 4F
11/25 22:22, 4F
→
11/25 22:23, , 5F
11/25 22:23, 5F
※ 編輯: Lsilver 來自: 111.242.26.72 (11/26 22:52)
→
11/26 22:53, , 6F
11/26 22:53, 6F
討論串 (同標題文章)