以下的程式中fork()為UNIX的Systemcall,
main()
{
int pid;
pid=fork();
printf("My process ID is %d\n",pid);
pid=fork();
printf("My process ID is %d\n",pid);
}
請問其執行結果會印出幾行文字?
(A)2
(B)4
(C)6
(D)以上皆非。
答案:登入後查看
統計: A(30), B(31), C(46), D(5), E(0) #356879
統計: A(30), B(31), C(46), D(5), E(0) #356879
詳解 (共 3 筆)
#458864
在 UNIX 中有所謂的 fork() 功能,這個功能主要目的是產生兩個一模一樣的 process 在電腦中同時執行,藉由這種方法可以做出 Concurrent Programming 的效果,所以第一個fork(); 會製造出兩個process。
int pid;
pid=fork();
printf("My process ID is %dn",pid);
所以第一次會印出兩行,同時產生兩個一樣的Process,接著再出現一次
pid=fork();
printf("My process ID is %dn",pid);
所以兩個成四個一樣的列印出printf("My process ID is %dn",pid); 的Process,
加上一開始印出的兩行,共6行。
6
0
#1297332
fork 分叉
concurrent 同時發生的
2
0
#422115
why?
0
0