std:: strerror
|
헤더 파일에 정의됨
<cstring>
|
||
|
char
*
strerror
(
int
errnum
)
;
|
||
시스템 오류 코드 errnum 에 대한 텍스트 설명에 대한 포인터를 반환하며, std::perror() 가 출력하는 설명과 동일합니다.
errnum
는 일반적으로
errno
변수에서 얻어지지만, 이 함수는
int
타입의 모든 값을 받아들입니다. 문자열의 내용은 로케일에 따라 다릅니다.
반환된 문자열은 프로그램에 의해 수정되어서는 안 되지만, 이후의
strerror
함수 호출에 의해 덮어쓰여질 수 있습니다.
strerror
는 스레드 안전성을 보장하지 않습니다. 구현체는 정적 읽기 전용 문자열 리터럴에 대한 서로 다른 포인터를 반환하거나,
strerror
가 문자열을 배치하는 정적 버퍼를 가리키는 동일한 포인터를 반복적으로 반환할 수 있습니다.
목차 |
매개변수
| errnum | - | 오류 코드를 참조하는 정수 값 |
반환값
errno 에러 코드 errnum 에 해당하는 널 종료 바이트 문자열을 가리키는 포인터입니다.
참고 사항
POSIX
는 이후의
strerror
호출이 이전 호출에서 반환된 포인터 값을 무효화할 수 있도록 허용합니다. 또한 이러한 메시지의 내용을 제어하는 것은
LC_MESSAGES
로캘 패싯임을 명시합니다.
POSIX는 스레드 안전 버전인
strerror_r
을 정의하고 있습니다. Glibc는
호환되지 않는 버전을 정의합니다
.
예제
#include <cerrno> #include <clocale> #include <cmath> #include <cstring> #include <iostream> int main() { const double not_a_number = std::log(-1.0); std::cout << not_a_number << '\n'; if (errno == EDOM) { std::cout << "log(-1) failed: " << std::strerror(errno) << '\n'; std::setlocale(LC_MESSAGES, "de_DE.utf8"); std::cout << "Or, in German, " << std::strerror(errno) << '\n'; } }
가능한 출력:
nan log(-1) failed: Numerical argument out of domain Or, in German, Das numerische Argument ist ausserhalb des Definitionsbereiches
참고 항목
|
현재 오류에 해당하는 문자 문자열을
stderr
에 출력합니다
(함수) |
|
|
표준 POSIX 호환 오류 조건을 위한 매크로들
(매크로 상수) |
|
|
C documentation
for
strerror
|
|