ITPub博客

首页 > 应用开发 > > 怎么限制Fork的数量?

怎么限制Fork的数量?

作者:chinarocky 时间:2019-08-12 14:03:25 0 删除 编辑

本来搞个g_iChildProcessNum来记录当前进程数的,但是一直为0啊。。。
if(g_iChildProcessNum<g_iMaxChdNum)
{
iPid= fork();

switch (iPid)
{
case -1:
{
CloseSockfd(iClientSocketFD, LINE);
}
break;
case 0:
{

CloseSockfd(iServerSocketFD, LINE);

g_iChildProcessNum++;

HandleClient(iClientSocketFD);

g_iChildProcessNum--;

CloseSockfd(iClientSocketFD, LINE);

exit(0);
}
break;
default:
{
CloseSockfd(iClientSocketFD, LINE);
int sStatus;
pid_t childId = waitpid (-1, &sStatus, WNOHANG);
memset(logbuf,0,sizeof(logbuf));
sprintf(logbuf,"waitpid=[%d],status=[%d],line=[%d]\n",childId,sStatus,LINE);
lWriteLog(logfile,logbuf,strlen(logbuf),6);
}
break;
}
}
else
{

CloseSockfd(iClientSocketFD, LINE);

memset(logbuf,0,sizeof(logbuf));
sprintf(logbuf,"Too many client connection,g_iChildProcessNum=[%d],g_iMaxChdNum=[%d],line=[%d]\n",g_iChildProcessNum,g_iMaxChdNum,LINE);
lWriteLog(logfile,logbuf,strlen(logbuf),6);
}


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4547/viewspace-3125841/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-07-10

  • 博文量
    213
  • 访问量
    1690