minitalk-subject.pdf
✅ 클라이언트와 서버 형태로 통신 프로그램 생성하기
✅ SIGUSR1/SIGUSR2 시그널을 사용하여 server에서 client들의 메세지를 받는 것이 목표!!
리눅스 시스템 프로그래밍 6장 - Signal
허용된 함수
signal
void (*signal(int signum, void (*handler)(int)))(int);
- 시그널 처리 방법을 설정한다.
- 어떤 시그널들은 미리 정의된 행동을 함으로써 처리되는데, 이처럼 기존에 정의된 행동을 그대로 할 지, 시그널을 그냥 무시할 지, 사용자 정의 행동을 하도록 바꿔줄 지 선택할 수 있다
- sig는 처리해줄 시그널 번호로, 매크로 SIGABRT, SIGALL, SIGILL, SIGINT, SIGFPE, SIGIO, SIGOTHER, SIGSEGV, SIGTERM, SIGUSR1, SIGUSR2중 하나여야 하며, signal.h에 정의된다.
- handler는 시그널을 처리해줄 핸들러 SIG_IGN을 인자로 넘겨주면 해당 시그널을 무시한다
- 함수포인터를 넘겨주면 시그널이 들어왔을 때 특정 함수를 호출한다.
sigemptyset
int sigemptyset(sigset_t *set);
- 시그널 집합을 초기화하여 모든 시그널을 포함하지 않도록 설정한다.
- 성공하면 0을 반환하고, 실패하면 -1을 반환
sigaddset