gpt4 book ai didi

无法杀死子进程

转载 作者:行者123 更新时间:2023-11-30 19:43:58 26 4
gpt4 key购买 nike

因此,我将父进程的代码与子进程的代码放在不同的文件中。我必须在 parent 的代码中杀死 child ,但它永远不会被杀死。这是我到目前为止所得到的:

#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”...有人能帮助我吗?

最佳答案

在你杀死 child 之前, children 可能已经死了。添加暂停();在 execl 之后,这将使子进程挂起,直到它们收到任何信号。当你杀死它们时,如果另一个进程发送了信号并取消暂停其中一个子进程,你仍然可能会得到 -1

关于无法杀死子进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28907838/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com