다음 위로 이전 목차 리눅스 프로그래머를 위한 가이드

10.2.1 SVR4,BSD,POSIX.1에서의 신호들 (Signals under SVR4,BSD,and POSOX.1)

신호들의 SVR4 구현은 signal,sigset,sighold,sigrelse,segignore,sigpause 함수들을 통합시킨다. SVR4하에서의 signal 함수는 신뢰할 수 없는(unreliable) 신호들(signals) 만을 제공하는 표준적인 UNIX V7 신호들과 동일하다. 다른 함수들은 신호 취급자(signal handler)의 자동적인 재인스톨 기능을 가진 신호들을 제공하지만, 시스템 호출의 재시작(restarting)은 지원하지 않는다.

BSD하에서, signal,sigvec,sigblock,sigsetmask,sigpause 함수들은 지원된다. 모든 함수들은 신뢰할 수 있는 신호들에게 디폴트로 시스템 호출 재시작을 제공하지만, 프로그래머가 원한다면 사용하지 않을 수도 있다.

POSIX.1 하에서, sigaction,sigprocmask,sigpanding,sigsuspend는 제공된다. signal 함수는 없으며 POSIX.1에 따라 가치가 하락되었다는 것에 주목하라. 이러한 함수들은 신뢰할 수 있는(reliable) 신호들(signals)을 제공하지만, 시스템 호출 재시작 동작은 POSIX에 의해 정의되지 않았다. sigaction이 SVR4와 BSD하에서 사용되어 진다면, 시스템 호출 재시작은 디폴트로 사용되지 않지만, 신호 플래그 SA_RESTART가 지정되어 있으면 on 상태로 전환될 수 있다.

그러므로, 프로그램에서 신호들을 사용하는 가장 좋은 방법은 당신이 명확하게 신호 취급자(handler)의 동작을 지정할 수 있는 sugaction을 사용하는 것이다. 어쨌든, signal은 여전히 많은 응용프로그램에서 사용되고 위와같이 signal이 SVR4와 BSD하 에서 다른 semantics를 제공하는 것을 볼 수 있다.


이전:10.2 신호 다루기 (Signal Handling) 다음:10.2.2 리눅스 신호 선택사항

Copyright (c) 1996,1997 by Euibeom.Hwang & SangEun.Oh All Rights Reserved

Email To:Webmaster , Another address
LAST UPDATE Dec 19,1997
Created Dec 19,1997