if (sigismember(&sigset, SIGINT)) {
printf("SIGINT");
}
if (sigismember(&sigset, SIGQUIT)) {
printf("SIGQUIT");
}
if (sigismember(&sigset, SIGUSR1)) {
printf("SIGUSR1");
}
if (sigismember(&sigset, SIGALRM)) {
printf("SIGALRM");
}
printf("\n");
errno = errno_save;
}
* result
in critical region : SIGINT
[input] ^C
in sig_init : SIGINT
after : SIGINT
* 신호 그룹 함수
int sigemptyset(sigset_t *set);
int sigfillset(sigset_t *set);
int sigaddset(sigset_t *set, int signum);
int sigdelset(sigset_t *set, int signum);
int sigismember(const sigset-t *set, int signum);
int sigprocmask(int how, const sigset_t *set, sigset_t *oldset);
int sigpending(sigset_t *set);
int sigsuspend(const sigset_t *mask);
struct flock {
short l_type; /* F_RDLCK, F_WRLCK, or F_UNLCK */
off_t l_start; /* offset in bytes, relative to l_whence */
short l_whence; /* SEEK_SET, SEEK_CUR, or SEEK_END */
off_t l_len; /* length, in bytes; 0 means lock to EOF */
pid_t l_pid; /* returned with F_GETLK */
};
* 비교
- AF_INET : 유닉스 지역 네트워크와 인터넷자체에서 사용되는 인터넷 네트워크.
기반이 되는 프로토콜은 인터넷 프로토콜(IP)
- AR_UNIX : 네트워크를 통해 연결되지 않은 단일 컴퓨터 기반의 소켓에의해 사용.
유닉스 파일체계 도메인. 기반이 되는 프로토콜은 파일 입/출력
* 형태
①streams : 순차적이고 신뢰적인 양방향 바이트 스트림인 접속을 제공
전달되는 데이터가 상실되지 않도록 보장되고, 에러 발생시 복제되거
나 재요청. 예상 가능한 동작을 가짐.
AF_INET 도메인에서 TCP/IP 접속에 의해 구현, AF_UNIX 도메인에서 일반적
②datagrams : 전달할 수 있는 데이터 그램의 크기에는 제한이 있다.
이것은 상실되거나 복제되거나 순서를 벗어난 상태로 전달될 수 있는 단일 네트워크 메시지로 전송.
AF_INET도메인에서 UDP/IP접속에 의해 구현
장점은 리소스의 측면에서는 상대적으로 효율.