SIGRETURN(2)

명칭
sigreturn - 시그널로부터 돌아온다

프로그램 라이브러리
libc

서식
<signal.h> int sigreturn(ucontext_t *scp)

해설
sigreturn() 에 의해, 마스크의 해제, 스택의 변환, 시그널 문맥으로부터의 복귀를, 불가분에 실행 가능합니다. 프로세스의 시그널 마스크와 스택 스테이터스는, scp 그리고 가리켜지는 문맥 구조체로부터 복원됩니다. 시스템 콜은 돌아오지 않습니다. 유저의 스택 포인터, 프레임 포인터, 인수 포인터, 프로세서 스테이터스 롱 워드는, 문맥으로부터 복원됩니다. 실행은, 지정된 pc 로 재개됩니다. 이 시스템 콜은, 전에 실행하고 있던 프로그램에 시그널로부터 돌아오는 경우에, 트램포린 코드와 longjmp(3) 그리고 사용합니다.

주
이 시스템 콜은 4.2BSD 그럼 사용할 수 없기 때문에, 하위 호환성이 필요한 경우는 사용하지 말아 주세요.

반환값
처리가 정상적으로 완료하면(자), 이 시스템 콜은 돌아오지 않습니다. 그렇지 않은 경우는 -1 이 돌려주어져 에러를 나타내기 위해서(때문에) errno 하지만 설정됩니다

에러
이하중 1 개(살)이 발생하면(자), sigreturn() (은)는 처리를 실패해, 프로세스 문맥은 변경되지 않고 남습니다.

[EFAULT]
    Scp 하지만, 프로세스 address 공간의 유효한 부분은 아니다 메모리를 가리키고 있습니다.

[EINVAL]
    프로세스 스테이터스 롱 워드가 올바르지 않은지, 프로세스의 권한 레벨을 부적절하게 올리고 있습니다.

관련 항목
sigvec(2), setjmp(3), ucontext(3)

역사
sigreturn() 함수 호출은, 4.3BSD 그리고 등장했습니다.