NAME

siginterrupt - 시그널이 시스템 호출을 중단시킬 수 있게 허용하기

SYNOPSIS

#include <signal.h>

int siginterrupt(int sig, int flag);

glibc 기능 확인 매크로 요건 (feature_test_macros(7) 참고):

siginterrupt():
_XOPEN_SOURCE >= 500
|| /* glibc 2.12부터: */ _POSIX_C_SOURCE >= 200809L
|| /* glibc <= 2.19: */ _BSD_SOURCE

DESCRIPTION

siginterrupt() 함수는 시그널 sig에 의해 시스템 호출이 중단될 때의 재시작 동작 방식을 변경한다. flag 인자가 거짓(0)이면 지정한 시그널 sig에 의해 중단된 경우 시스템 호출이 재시작 된다. 이것이 리눅스에서 기본 동작 방식이다.

flag가 참(1)이고 어떤 데이터도 이동하지 않았으면 시그널 sig에 의해 중단된 시스템 호출이 -1을 반환하게 되고 errnoEINTR로 설정된다.

flag가 참(1)이고 데이터 이동이 시작됐으면 시스템 호출이 중단되고 실제 전송된 데이터의 양을 반환하게 된다.

RETURN VALUE

siginterrupt() 함수는 성공 시 0을 반환한다. 시그널 번호 sig가 유효하지 않으면 -1을 반환하고 오류를 나타내도록 errno를 설정한다.

ERRORS

EINVAL
지정한 시그널 번호가 유효하지 않다.

ATTRIBUTES

이 절에서 사용하는 용어들에 대한 설명은 attributes(7)를 보라.

인터페이스 속성
siginterrupt() 스레드 안전성 MT-Unsafe const:sigintr

CONFORMING TO

4.3BSD, POSIX.1-2001. POSIX.1-2008에서는 siginterrupt()를 구식으로 표시하며 대신 sigaction(2)SA_RESTART 플래그와 함께 사용하기를 권장한다.

SEE ALSO

signal(2)


2021-03-22