#include<stdio.h>
#include <signal.h>
#include <unistd.h>
#include <sys/types.h>
#include <string.h>
int mes1,mes2;
FILE *klop;
void signal_handler(int sig)
{
switch(sig)
{
case SIGHUP:
fprintf(klop,"1 ");
break;
case SIGTERM:
printf("zapisalos\n");
_exit(0);
break;
}
}
void main()
{
int i,j;
pid_t pid;
fflush(NULL);
signal(SIGTERM,signal_handler);
signal(SIGHUP ,signal_handler);
signal(SIGSEGV,signal_handler);
klop=fopen("2.txt","ab");
pid=fork();
switch( pid)
{
case -1 :
printf("no creat");
_exit(1);
case 0 : //потомок
printf("children\n");
break;
default : //родитель
{
for (i = 0;i<5 ;i++)
{
//kill(pid,SIGSEGV);
kill(pid,SIGHUP);
sleep(1);
}
printf("ubili children\n");
kill(pid,SIGTERM);
}
fclose(klop);
klop=fopen("2.txt","r");
while(!feof(klop))
{
fscanf(klop,"%d ",&i);
printf("%d ",i);
};
printf("\n");
}
}
Подскажите , почему дочерний процесс то уничтожается?