我学习,这是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