以下的程式中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

詳解 (共 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