高分求僵尸进程解决办法
源代码如下:
for( procNum = 0; procNum < MAX_PROC_NUM; procNum++ )
{
if( TaskList[procNum].procNum < 0 )
{
continue;
}
TaskList[procNum].proc_id = fork();
if( TaskList[procNum].proc_id > 0 ) /*父进程*/
{
printf("启动子进程,进程编号[%d] 进程号[%ld] \n",TaskList[procNum].procNum,TaskList[procNum].proc_id);
continue;
}
else if( TaskList[procNum].proc_id == 0 )
{
//调用处理函数
}
else
{
perror("fork");
return FAIL;
}
}
/*等待子进程的结束*/
for( procNum = 0; procNum < MAX_PROC_NUM; procNum++ )
{
if( TaskList[procNum].procNum < 0 )
{
continue;
}
printf("等待子进程结束:[%ld]……\n",TaskList[procNum].proc_id);
waitpid(TaskList[procNum].proc_id,&TaskList[procNum].dealFlag,0);
if( TaskList[procNum].dealFlag != SUCCESS )
{
printf("进程编号[%d] 进程号[%ld] 出错代码 [%d] \n",TaskList[procNum].procNum,TaskList[procNum].proc_id,TaskList[procNum].dealFlag);
}
else
{
printf("进程编号[%d] 进程号[%ld] 结束代码 [%d] \n",TaskList[procNum].procNum,TaskList[procNum].proc_id,TaskList[procNum].dealFlag);
}
}
*****************************************************************************
当某个进程运行完后,程序就会出现僵尸进程,由于刚接触进程,请高手指教