strerror()
은 errno
에서 메시지를 복구하는 것과 같은 방식으로 POSIX 표준 또는 다른 C 표준이 신호 번호에서 의미있는 메시지를 복구하는 방법을 제공합니까? Gnu C 라이브러리에는 strsignal()
이 있지만 가능하다면 BSD 및 다른 유닉스 변종에 이식 할 수있는 것을 제공하고 싶습니다.신호 번호에서 사람이 읽을 수있는 설명을 얻으려면 어떻게합니까?
6
A
답변
10
흥미롭게도 흥미롭게도 POSIX의 신호에서 문자열 메시지를 가져 오는 표준 방법이 있습니다. 아주 우연히도 strsignal()
입니다. POSIX.1-2008에서 :
strsignal() 함수는 signum의 신호 번호를 구현 정의 문자열로 매핑하고 이에 대한 포인터를 반환해야합니다. 그것은 psignal() 함수와 같은 메시지 집합을 사용합니다.
이 기능을 제공하지 않는 환경은 POSIX와 호환되지 않습니다. 상대적으로 새로운 (이슈 7은 2008 년에 나온 것이지만), Mac OS X에 strsignal()
에 대한 man 페이지가 있는데, 이것은 좋은 징조입니다.
2
외부 정의 된 배열 sys_siglist
에는 각 신호 번호에 대한 신호 설명이 들어 있으며 BSD의 표준 문제입니다.
#include <signal.h>
extern const char *const sys_siglist[];
+0
+1 표준 자체가 아니지만 유용하고 더 일반적으로 발견됩니다. – pilcrow
감사합니다 : http://tinyurl.com/d4z9ev "이 기능은 어떤 표준의 일부도 아닙니다"라는 GNU man 페이지는 분명히 업데이트해야합니다. –
@Norman : 업데이트가 필요한'man' 페이지가 있습니까? 이교! 건배. –