求解fork()函数用法区别

来源:百度知道 编辑:UC知道 时间:2024/05/29 20:48:39
以前老师讲的fork()用法是这样的:

nfork()的用法:
if( fork() == 0)

{

childTask();

}

else
{

fatherTask();

}
今天看书又有这么一种:
if(pid=fork())<0)
{
printf(".......");
exit(1);
}
else if(pid==0)
{
printf(".......");
}
else
{
printf(".......");
}
exit(0);
这两种有区别么?
区别在那里?
新手希望大家指导下 谢谢了

仔细分析一下两段代码,可以发现一个区别:
书上写的代码,判断了fork()的返回值为负的情况;而老师给的代码没有。

fork()函数返回值是负,说明fork不成功。
老师给的代码里没对它进行判断,绝大多数情况下是没有问题的。
但作为程序员写程序需要考虑“健壮性”,必须得在任何异常情况下程序都不能出问题,不能有"memory faule core dumped".
^o^