我學習,這是OS測驗,我不明白如果(叉())叉()
if(fork())
fork()
會產生什麼輸出。有人可以解釋嗎?
我不明白這行:
if(fork())
編輯:
我與「產出」的意思是許多進程將如何在那裏,如果沒有執行這個代碼。
對不起,我學習後有點頭暈。
我學習,這是OS測驗,我不明白如果(叉())叉()
if(fork())
fork()
會產生什麼輸出。有人可以解釋嗎?
我不明白這行:
if(fork())
編輯:
我與「產出」的意思是許多進程將如何在那裏,如果沒有執行這個代碼。
對不起,我學習後有點頭暈。
這裏有一個提示:if (fork())
是寫if (fork() != 0)
的只是一小段路。
Thank youoooouuouou !!! <3 <3 <3 <3 <3 xD – faris 2010-11-25 23:39:53
也許你最好只是嘗試一下,閱讀fork的documentation,然後,如果它仍然沒有意義,請問一個更具體的問題,你不明白哪個部分。
開始通過嘗試這樣的:
#include <stdio.h>
#include <unistd.h>
int main(int argc,char **argv){
int x,y=0;
x = fork();
if (x) y = fork();
printf("x: %d, y: %d\n",x,y);
return 0;
}
我有和你一樣的問題。
的含義:::::>if (fork())
if (fork() !=0)
,如你所知:
fork()
:可以採取3個值!
fork() = 0
給孩子。
fork() < 0
錯誤。
fork() > 0
parent。
所以:
if (0 != O)
==>假的(在這種情況下,你沒有做2叉())
if (-123 != 0)
==>真(你)。
if (5 != 0)
==> true(是的,你有)。
好喜歡
父
if (fork()) is
評爲
if(pid_of_child)
和子進程被評價爲:
if(0)
就是它了:)
這將輸出...什麼也沒有。這個問題肯定包括一個printf或其他東西在叉後輸出? – ysth 2010-11-25 23:08:23