为什么经常有这类的代码
来源:百度知道 编辑:UC知道 时间:2024/06/21 14:26:41
if ( fork () > 0 ) {
sleep(2);
exit (0);
}
经常看到这些代码,为啥要创建子进程,退出父进程???
if ( ( pid = fork( ) ) != 0 )
{
exit( 0 );
}
setpgrp( );
setsid( );
signal( SIGHUP, SIG_IGN );
if ( ( pid = fork( ) ) != 0 )
{
exit( 0 );
}
umask( 027 );
for ( i = getdtablesize( ) - 1; i >= 0; --i )
( void ) close( i );
不能直接就在父进程里执行吗??感觉好像这样很多余啊
sleep(2);
exit (0);
}
经常看到这些代码,为啥要创建子进程,退出父进程???
if ( ( pid = fork( ) ) != 0 )
{
exit( 0 );
}
setpgrp( );
setsid( );
signal( SIGHUP, SIG_IGN );
if ( ( pid = fork( ) ) != 0 )
{
exit( 0 );
}
umask( 027 );
for ( i = getdtablesize( ) - 1; i >= 0; --i )
( void ) close( i );
不能直接就在父进程里执行吗??感觉好像这样很多余啊
不知道你有没有听过“进程链”,下面这个就是进程链
for (; i<MAX; i++)
{
if (fork() > 0)
{
break;
}
}
还有一种是进程扇
for ()
{
if (fork() == 0) //子进程退出
{
break;
}
}
希望这些对你有帮助
具体情况 具体分析