잘못하다
errno.h| C 표준 라이브러리 |
|---|
| 일반 주제 |
| 기타 헤더 |
errno.h는 C 프로그래밍 언어의 표준 라이브러리에 있는 헤더 파일이다.기호를 사용하여 오류 조건을 보고 및 검색하는 매크로를 정의함errno("입력 번호"[1]의 줄임말).
errno정수 변수와 같은 역할을 하다값(오류 번호)이 다음 위치에 저장됨errno오류를 감지할 때 특정 라이브러리 기능에 의해.프로그램 시작 시 저장된 값은 0이다.라이브러리 함수는 0보다 큰 값만 저장한다.라이브러리 함수는 반환 전 저장된 값을 오류를 감지하든 말든 변경할 수 있다.[2]대부분의 함수는 특수한 값을 반환하여 오류를 감지했으며, 일반적으로 포인터를 반환하는 함수의 경우 NULL, 정수를 반환하는 함수의 경우 -1을 검출하였음을 나타낸다.몇 가지 기능을 사용하려면 호출자가 사전 설정을 해야 함errno0을 설정하고 나중에 테스트하여 오류가 감지되었는지 확인하십시오.
그errno매크로가 유형으로 l값으로 확장됨int, 때때로 ,extern및/또는volatile플랫폼에 따라 지정자를 [3]입력하다원래 이것은 정적 메모리 위치였지만, 매크로는 오늘날 거의 항상 멀티스레딩을 허용하기 위해 사용되어 각 스레드에 고유한 스레드 로컬 오류 번호가 표시된다.
헤더 파일은 또한 오류 코드를 나타내는 정수 상수로 확장되는 매크로를 정의한다.C 표준 라이브러리는 다음 3개만 정의하면 된다.[2]
에돔
- 함수 도메인 외부에 있는 매개 변수(예:
sqrt(-1)
에란지
- 함수 범위를 벗어나는 결과(예:
strtol("0xfffffffff", NULL, 0)32비트 폭의 시스템에long
EILSEQ (1994년 이후 수정안 1 ~ C89 표준 필요)[4]
- 잘못된 바이트 시퀀스의 결과(예:
mbstowcs(buf, "\xff", 1)UTF-8을 사용하는 시스템.
AIX, 리눅스 또는 Solaris와 같은 POSIX 호환 운영 체제에는 다른 많은 오류 값이 포함되며, 이들 중 상당수는 파일을 읽기 위해 열 수 없을 때 EACCES와 같이 위의 오류 값보다 훨씬 더 자주 사용된다.[5]C++11은 POSIX 규격에서 발견된 많은 동일한 값을 추가로 정의한다.[6]
전통적으로 인트로(2)라는 이름의 유닉스 시스템 매뉴얼의 첫 페이지에는 모든 에르노.h 매크로가 나열되지만, 리눅스에서는 이 매크로가 대신 에르노(3)에 나열되어 있는 경우는 그러하지 않다.[7]
안errnostrerror(string.h에 정의됨) 또는 BSD 확장자를 사용하여 기술 문자열로 변환할 수 있음sys_errlist. 번역은 오류(stdio.h에 정의됨)를 이용하여 표준 에러 스트림에 직접 인쇄할 수 있다.로서strerror많은 유닉스 시스템에서는 스레드-세이프 버전이 아닌 스레드-세이프-세이프 버전strerror_r사용되지만, POSIX와 GNU의 상충되는 정의로 인해 POSIX와 GNU의 이동성이 훨씬 떨어진다.sys_errlist식탁의[8]
참고 항목
참조
- ^ 국제 프로그래밍 언어 C(C11), ISO/IEC 9899:2011, 페이지 205
- ^ a b 국제 프로그래밍 언어 C(C99), ISO/IEC 9899:1999, 페이지 186
- ^ "Checking for Errors". The GNU C Library (glibc). GNU Project. 2014-02-08. Retrieved 2014-06-25.
- ^ "A brief description of Normative Addendum 1". Retrieved 2013-09-12.
- ^ : 시스템 오류 번호 – 기본 정의 참조, 단일 UNIX 사양, 오픈 그룹의 문제 7
- ^ "Error numbers - cppreference.com". Retrieved 2015-05-08.
- ^ Stevens & Rago 2013, 페이지 14.
- ^ McCabe, Colin. "The problem with strerror". www.club.cc.cmu.edu.
참고 문헌 목록
- Stevens, W. Richard; Rago, Stephen A. (May 24, 2013). Advanced Programming in the UNIX Environment (Third ed.). Addison-Wesley Professional. ISBN 978-0321637734. Retrieved 27 February 2015.
외부 링크
- – FreeBSD 시스템 호출 설명서
- – Linux Programmer's Manual – Library Functions
- GNU C 라이브러리 설명서:에러코드
- Linux에서 숫자 및 심볼릭 둘 다에 대한 오류 없음 값
