글
■ sigaction() 함수는 signal 함수보다 향상된 기능을 제공한다.
(1) 함수원형
#include <signal.h>
int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);
○ 반환값
- 성공 시 : 0
- 실패 시 : -1
○ 인자
- signum : 시그널 번호
- act : 새롭게 설정할 처리
- oldact : 이 함수를 호출하기 전에 설정된 처리 정보를 입력
(2) singaction 구조체
struct sigaction {
void (*sa_handeler) (int)
void (*sa_sigaction) (int, siginfo_t *, void *)
sigset_tsa_mask;
intsa_flags;
void (*sa_restorer) (void);
}
(3) 실행예제
○ Source Code
○ Result
- [ctrl+c]키를 처음 누르면 등록된 시그널 처리기가 동작하고, [ctrl+c]키를 재차 누르면 원래의 핸들러 기능을 수행해서 프로세스가 종료된다.
'P rogramming > Linux System' 카테고리의 다른 글
문자열을 정수로 변환 :: atoi() (2) | 2012.11.12 |
---|---|
자식 프로세스 종료확인 :: wait(), waitpid() (2) | 2012.05.22 |
파일 컨트롤 함수 :: fcntl() (0) | 2012.05.15 |
메모리 맵핑(mapping) - mmap() / munmap() (8) | 2012.04.24 |
오류처리 - perror(), strerror() (0) | 2012.03.06 |
RECENT COMMENT