問題詳情

以下的程式中fork()為UNIX的Systemcall,main(){int pid;pid=fork();printf("My process ID is %dn",pid);pid=fork();printf("My process ID is %dn",pid);}請問其執行結果會印出幾行文字?
(A)2
(B)4
(C)6
(D)以上皆非。

參考答案

答案:C
難度:困難0.352381
統計:A(24),B(26),C(37),D(5),E(0)

用户評論

Eric Juan】評論

why?

Hsi-chia Tsen】評論

在 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行。

安身立命】評論

fork 分叉