#include<unistd.h>
unsigned int alarm(unsigned int seconds);
지정된 시간 후 SIGALRM 시그널이 발생하도록 타이머 설정.
alarm을 호출하면 이전 남은 시간값 리턴 후 다시 알람 설정.
int pause();
시그널이 전달될 때까지 프로세스의 실행을 지연.
시그널 세트
복수개의 시그널을 표현하는 데이터 형
sigset_t형 변수
시그널 세트 조작함수.
#include<signal.h>
int sigemptyset(sigset_t *set); // set 비트 모두 clear
int sigfillset(sigset_t *set); // set 비트 모두 set
int sigaddset(sigset_t *set, int signo); // signo에 해당하는 비트 set
int sigdelset(sigset_t *set, int signo); // signo에 해당하는 비트 clear
int sigismember(const sigset_t *set, int signo); // signo에 해당하는 비트 검사.
#include <signal.h>
int sigprocmask(int how, const sigset_t *set, sigset_t *oset);
set으로 마스크를 변경한다.
how : 시그널 마스크를 변경시키는 방식
- SIG_BLOCK : set인자들을 set, SIG_UNBLOCK : set인자들을 clear, SIG_SETMASK : set인자로 시그널을 대체.
set : 변경될 시그널 마스크 내용
oset : 이전 시그널 마스크 내용
#include <signal.h>
int sigpending(sigset_t *set);
블록되어 있는 시그널 집합을 set으로 출력(out)
#include<signal.h>
int sigaction(int signo, const struct sigaction *act, struct sigaction *oact);
signo : 시그널 번호
act : 시그널에 대해 변경될 처리방법 지정
oact : 현재의 처리 방법 저장.
struct sigaction{
void (*sa_handler)(); // 시그널 처리 함수 포인터
sigset_t sa_mask; // 핸들러 수행시 블록될 함수. 수행 후 다시 원래대로 돌아옴.
int sa_flags;
}
'컴퓨터 공부 > Advanced UNIX System Programming' 카테고리의 다른 글
[5월 8일 2교시] 입출력 (0) | 2009.05.08 |
---|---|
[5월 8일 1교시] 입출력 다중화 1 (0) | 2009.05.08 |
[5월 7일 2교시] 시그널 1 (0) | 2009.05.07 |
[5월 7일 1교시] 프로세스 관계 + 데몬 프로세스 (0) | 2009.05.07 |
[5월 6일 3교시] 시스템 정보 2 (0) | 2009.05.06 |