【发布时间】:2015-03-06 21:19:06
【问题描述】:
因此,我将父进程的代码与子进程的代码放在不同的文件中。我必须在父母的代码中杀死孩子,但它永远不会被杀死。这是我到目前为止所得到的:
#define NO_OF_CHILDREN 3
int rtn = 1;
for( count = 0; count < NO_OF_CHILDREN; count++ ) {
if( rtn != 0 ) {
rtn = fork();
pid[count] = rtn;
}
else {
break;
}
}
numKids = count;
sprintf(numeroFilhos,"%d",numKids);
if( rtn == 0 ) {
execl("filho",numeroFilhos,NULL);
}
else
{
for(i=0; i < numKids; i++)
{
usleep(2000000);
matar = kill(pidDosFilhos[i],SIGKILL);
}
printf("are the children dead? %d \n",matar);
}
exit(0);
我的杀戮返回“-1”...有人可以帮帮我吗?
【问题讨论】:
-
请尝试发布一个独立的最小示例。如果没有函数和不一致的缩进,你的代码很难理解。
-
当 kill() 返回 -1 时,我建议检查 errno 的值,看看错误是什么。 perror(3) 函数对此很有用。