signal()시그널 제어
void (*signal(int sig, void (*func)(int));)(int);
sig: 시그널 번호(*func)(int): 시그널을 처리할 핸들러
SIG_DFL을 전달SIG_IGN 전달void *()(int)SIG_ERRSIGKILL과 SIGSTOP은 제어할 수 없음
실행 이후에 자식 프로세스를 포크하면 자식 프로세스에 설정이 상속됨
execve()로 실행된 프로세스에서는 시그널 설정이 리셋되지만, 무시된 시그널은 계속 무시됨
SIGCHLD에 대해 SIG_IGN을 지정하면 자식 프로세스가 종료될 때 좀비 프로세스가 생성되지 않음
자식 프로세스의 종료 코드는 무시됨
만약 부모 프로세스가 자식 프로세스를 wait()하고 있었다면, 모든 자식 프로세스가 종료될 때까지 실행이 연기되었다가 1을 리턴