Çocuk çatalı oluşturacak aşağıdaki kodum var. Ve çocuğu ebeveyninde infazını bitirmeden önce öldürmek istiyorum. nasıl yapılır?Çocuğun çatalını nasıl öldürebilirim?
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int i;
main (int ac, char **av)
{
int pid;
i = 1;
if ((pid = fork()) == 0) {
/* child */
while (1) {
printf ("I m child\n");
sleep (1);
}
}
else {
/* Error */
perror ("fork");
exit (1);
}
sleep (10)
// TODO here: how to add code to kill child??
}
fork() 'a pid_t' döner ölmek
Bu sürecini 5 saniye verecek bir int değil, bu yüzden değişkeni böyle beyan etmelisin. –
Özgün soruyla ilgisiz: Çatal döndüğünde yeni bir süreç ortaya çıkar (başarı durumunda) ve hem ebeveyn hem de çocuk “fork” çağrısının yapıldığı yerden devam eder. Bir çocuk işlemi için pid = 0 (iyi, her zaman getpid() ile elde edebilir ve bir ana işlem için pid> 0 olabilir. Hata sadece çatal -1 döndürür. Kodunuzda bir "ana işlem" parçasını bir hata olarak ele alıyorsunuz. –
olası bir kopyası [Ebeveyn süreci tarafından nasıl bir alt süreç başlatılır?] (Http://stackoverflow.com/questions/6501522/how-to-kill-a-child-process-by-the-parent-process) – goozez