Итак, у меня есть код для родительского процесса в другом файле, кроме кода дочернего процесса. Я должен убить ребенка в коде родителя, но он никогда не может быть убит. Вот что я получил до сих пор:can not kill child process
#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» для возвращения убить ... может ли кто-нибудь мне помочь?
Просьба попытаться опубликовать автономный минимальный пример. Ваш код трудно отслеживать без функций и непоследовательного отступа. – dhke
Когда kill() возвращает -1, я предлагаю проверить значение errno, чтобы узнать, что такое ошибка. Функция perror (3) может быть полезна для этого. – mshildt