C Language
오류 처리
수색…
통사론
- #include <errno.h>
- int errno; / * 구현 정의 * /
- #include <string.h>
- char * strerror (int errnum);
- #include <stdio.h>
- void perror (const char * s);
비고
염두에두고 errno
구문이 선언하는 방법 만 표시임을 반드시 변수가 아니라. 스레드 인터페이스가있는 많은 현대 시스템에서 errno
는 현재 스레드에 대해 로컬 인 객체로 해석되는 일부 매크로입니다.
오류
표준 라이브러리 함수가 실패하면 errno에 적절한 오류 코드가 설정되는 경우가 있습니다. C 표준은 errno가 설정되기 위해 최소한 3 개의 값을 필요로합니다 :
값 | 의미 |
---|---|
EDOM | 도메인 오류 |
오류 | 범위 오류 |
EILSEQ | 불법 멀티 바이트 문자 시퀀스 |
strerror
perror
가 충분히 유연하지 않으면 <string.h>
에서 strerror
를 호출하여 사용자가 읽을 수있는 오류 설명을 얻을 수 있습니다.
int main(int argc, char *argv[])
{
FILE *fout;
int last_error = 0;
if ((fout = fopen(argv[1], "w")) == NULL) {
last_error = errno;
/* reset errno and continue */
errno = 0;
}
/* do some processing and try opening the file differently, then */
if (last_error) {
fprintf(stderr, "fopen: Could not open %s for writing: %s",
argv[1], strerror(last_error));
fputs("Cross fingers and continue", stderr);
}
/* do some other processing */
return EXIT_SUCCESS;
}
공포
사용자가 읽을 수있는 오류 메시지를 stderr
인쇄하려면 <stdio.h>에서 perror
를 호출하십시오.
int main(int argc, char *argv[])
{
FILE *fout;
if ((fout = fopen(argv[1], "w")) == NULL) {
perror("fopen: Could not open file for writing");
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}
그러면 errno
의 현재 값에 관한 오류 메시지가 인쇄됩니다.
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow