Linux 오류 코드는 작업이나 프로그램 사용 중에 시스템에 오류가 발생할 경우 표시되는 코드입니다. 오류 코드를 통해 오류를 인식할 수 있습니다. 오류 코드는 오류의 원인을 인식하는 데 도움이 됩니다.
Linux 시스템에서 작업하는 경우 오류가 발생할 수 있다는 것은 명백합니다. 일부 오류는 사소할 수 있으며 프로그램이 중단되지 않을 수도 있습니다. 그러나 시스템이나 프로그램의 응답을 중지시킬 수 있는 일부 오류가 있을 수 있습니다. 이러한 오류로 인해 데이터가 손실되거나 프로그램이 완료되지 않을 수 있습니다. 대부분의 오류는 코드나 메시지 형태로 표시됩니다.
이 섹션에서는 C 프로그래밍의 오류와 가능한 오류 목록을 살펴보겠습니다. 리눅스 체계.
C 프로그래밍의 Linux 오류
숙련된 프로그래머는 오류를 처리하는 방법을 알아야 합니다. C 프로그래밍 언어는 오류 처리를 직접 지원하지 않습니다. 우리는 오류의 원인을 찾아 처리해야 합니다. C 언어에서는 반환 값에 실패 또는 성공이 표시됩니다. C 프로그램의 함수가 실패하면 그에 따라 오류를 처리해야 합니다. 그렇지 않으면 로그 파일의 마지막 오류를 기록합니다.
C 프로그램을 실행하는 동안 '오류 번호: 17'과 같은 일부 오류 번호를 발견할 수 있습니다. 여기서 오류 번호 17은 파일이 이미 존재함을 의미합니다. 모든 오류 번호에는 의미가 있습니다.
C언어는 변수를 지원합니다. '오류 없음 .' 이 오류 번호 변수를 사용하면 일부 오류 처리 기능을 사용하여 이를 올바르게 처리할 수 있습니다.
외부 변수 오류 번호를 사용하려면 헤더 파일을 포함해야 합니다. 'errno.h.' 헤더 파일은 'errno' 변수를 정의하는 데 사용됩니다. errno 변수는 오류 발생 시 시스템 호출 및 라이브러리 함수에 의해 설정됩니다. 에는 두 가지 중요한 기능이 있습니다. C 프로그래밍 언어 오류를 처리하기 위해; 테러 그리고 테러 . perror 함수는 오류 설명을 인쇄하는 데 사용되며 sterror 함수는 오류 코드가 있는 문자열을 반환합니다.
errno를 사용하여 오류 코드 목록을 표시해 보겠습니다.
리눅스 오류 번호
errno 유틸리티는 errno 코드, 매크로 이름 및 해당 설명을 찾는 데 사용됩니다. 예를 들어 Linux 시스템에서 ENOENT를 제공하면 코드 2와 설명이 표시됩니다. ' 해당 파일이나 디렉터리가 없습니다 .' 코드 2를 제공하면 다음이 표시됩니다. ENOENT 및 설명 .
errno 유틸리티가 컴퓨터에 설치되어 있지 않으면 다음과 같은 오류가 표시됩니다.
설치하려면 아래 명령을 실행하십시오.
sudo apt install moreutils
위 명령을 실행하면 errno 유틸리티가 포함된 컴퓨터에 moreutils 패키지가 설치됩니다.
오류 코드 목록 표시
오류 코드 목록을 표시하려면 다음과 같이 명령을 실행하십시오.
errno -l
위 명령은 RedHat의 오류 코드 목록을 표시합니다. 아래 출력을 고려하십시오.
오류 번호 정보 표시
특정 오류 번호의 정보를 표시하려면 다음과 같이 명령을 실행하십시오.
errno 2
위 명령은 오류 번호 2에 대한 설명을 표시합니다. 아래 출력을 고려하십시오.
오류 이름의 정보 표시
특정 오류 이름의 정보를 표시하려면 오류 이름 뒤에 errno 명령을 실행하십시오. 예를 들어 오류 이름의 정보를 표시하려면 '에스크 ,' 다음과 같이 명령을 실행합니다.
errno ESRCH
위 명령은 지정된 오류 이름에 대한 정보를 표시합니다. 아래 출력을 고려하십시오.
문자열을 사용하여 오류 표시
설명의 문자열을 사용하여 오류 설명을 표시하려면 다음과 같이 명령을 실행하십시오.
errno -s permission
위 명령은 설명에 문자열 권한이 포함된 오류를 표시합니다. 아래 출력을 고려하십시오.
Linux 시스템 오류 목록
다음은 Linux 시스템에서 발생할 수 있는 오류의 일부 목록입니다.
에러 코드 | 오류 아니요 | 설명 |
---|---|---|
높은 | 1 | 조작이 허용되지 않는 경우 표시됩니다. |
이노엔트 | 2 | 해당 파일이나 디렉터리가 존재하지 않는 경우 표시됩니다. |
ESRCH | 삼 | 해당 프로세스가 존재하지 않는 경우 표시됩니다. |
EINTR | 4 | 중단된 시스템 호출의 경우 표시됩니다. |
EIO | 5 | 입출력 오류가 발생한 경우 표시됩니다. |
엔시오 | 6 | 해당 장치가 없거나 주소가 존재하는 경우 표시됩니다. |
이투빅 | 7 | 인수 목록이 너무 길면 표시됩니다. |
에노젝 | 8 | Exec 형식 오류가 있는 경우 표시됩니다. |
EBADF | 9 | 파일 설명자가 잘못된 경우 표시됩니다. |
에차일드 | 10 | 하위 프로세스가 존재하지 않는 경우 표시됩니다. |
다시 | 열하나 | 리소스를 일시적으로 사용할 수 없는 경우 표시됩니다. |
ENOMEM | 12 | 시스템이 메모리를 할당할 수 없는 경우에 표시됩니다. |
EACCES | 13 | 권한이 거부된 경우 표시됩니다. |
실패 | 14 | 잘못된 주소가 있을 경우 표시됩니다. |
ENOTBLK | 열 다섯 | 블록 장치가 필요한 경우 표시됩니다. |
바쁘다 | 16 | 장치나 리소스가 사용 중인 경우 표시됩니다. |
존재한다 | 17 | 파일이 이미 존재하는 경우 표시됩니다. |
EXDEV | 18 | 잘못된 장치 간 링크가 있는 경우 표시됩니다. |
ENODEV | 19 | 해당 장치가 없을 경우 표시됩니다. |
에노디르 | 이십 | 디렉터리가 없을 경우 표시됩니다. |
에이스디르 | 이십 일 | 디렉터리가 있으면 표시됩니다. |
단일 선택 | 22 | 잘못된 인수가 있는 경우 표시됩니다. |
입다 | 23 | 시스템에 열려 있는 파일이 너무 많으면 표시됩니다. |
죽은 | 24 | 열려 있는 파일이 너무 많으면 표시됩니다. |
에노티 | 25 | 장치에 부적절한 ioctl이 있는 경우 표시됩니다. |
ETXTBSY | 26 | 텍스트 파일이 사용 중인 경우 표시됩니다. |
EF빅 | 27 | 파일이 너무 큰 경우 표시됩니다. |
ENOSPC | 28 | 기기에 남은 공간이 없을 경우 표시됩니다. |
ESPIPE | 29 | 불법탐색시 표시됩니다. |
에로프스 | 30 | 읽기 전용 파일 시스템인 경우 표시됩니다. |
엠링크 | 31 | 링크가 너무 많으면 표시됩니다. |
에피페 | 32 | 배관이 파손된 경우 표시됩니다. |
에돔 | 33 | 수치인자가 영역을 벗어나면 표시됩니다. |
에레인지 | 3. 4 | 수치 결과가 범위를 벗어나면 표시됩니다. |
EDEADLK | 35 | 리소스 교착상태를 피할 경우 표시됩니다. |
에나멜툴롱 | 36 | 파일명이 너무 길 경우 표시됩니다. |
에놀크 | 37 | 사용 가능한 잠금 장치가 없는 경우 표시됩니다. |
이노시스 | 38 | 기능이 구현되지 않은 경우 표시됩니다. |
ENOTEMPTY | 39 | 디렉토리가 비어 있지 않으면 표시됩니다. |
엘루프 | 40 | 심볼릭 링크의 레벨이 너무 많은 경우에 표시됩니다. |
ENOMSG | 42 | 원하는 종류의 메시지가 없을 경우 표시됩니다. |
EIDRM | 43 | 식별자가 제거된 경우 표시됩니다. |
ECHRNG | 44 | 채널번호가 범위를 벗어나면 표시됩니다. |
EL2NSYNC | 넷 다섯 | 레벨 2가 동기화되지 않은 경우 표시됩니다. |
EL3HLT | 46 | 레벨 3이 정지된 경우 표시됩니다. |
EL3RST | 47 | 레벨 3이 초기화된 경우 표시됩니다. |
ELNRNG | 48 | 링크번호가 범위를 벗어나면 표시됩니다. |
유나치 | 49 | 프로토콜 드라이버가 연결되지 않은 경우 표시됩니다. |
에녹시 | 오십 | 사용 가능한 CSI 구조가 없는 경우 표시됩니다. |
EL2HLT | 51 | 레벨 2가 정지된 경우 표시됩니다. |
그랬다 | 52 | 교환이 유효하지 않은 경우 표시됩니다. |
에바드르 | 53 | 요청 설명자가 유효하지 않은 경우 표시됩니다. |
제외 | 54 | 교환이 가득 찼을 경우 표시됩니다. |
ENOANO | 55 | 양극이 없는 경우에 표시됩니다. |
EBADRQC | 56 | 요청 코드가 유효하지 않은 경우 표시됩니다. |
EBADSLT | 57 | 유효하지 않은 슬롯인 경우 표시됩니다. |
EB폰트 | 59 | 잘못된 글꼴 파일 형식이 있는 경우 표시됩니다. |
일방적 | 60 | 장치가 스트림이 아닌 경우 표시됩니다. |
에노데이타 | 61 | 사용 가능한 데이터가 없는 경우 표시됩니다. |
ETIME | 62 | 타이머가 만료된 경우 표시됩니다. |
ENOSR | 63 | 스트림 자원이 부족한 경우에 표시됩니다. |
이노넷 | 64 | 기기가 네트워크에 없는 경우 표시됩니다. |
ENOPKG | 65 | 패키지가 설치되지 않은 경우 표시됩니다. |
EREMOTE | 66 | 객체가 원격인 경우 표시됩니다. |
이노링크 | 67 | 링크가 끊어진 경우 표시됩니다. |
EADV | 68 | 광고 오류인 경우 표시됩니다. |
ESRMNT | 69 | Srmount 오류가 발생한 경우 표시됩니다. |
전자상거래 | 70 | 송신 시 통신 오류가 있는 경우 표시됩니다. |
에프로토 | 71 | 프로토콜 오류인 경우 표시됩니다. |
멀티홉 | 72 | 멀티홉 시도에 대해 표시됩니다. |
EDOTDOT | 73 | RFS 특정 오류에 대해 표시됩니다. |
EBADMSG | 74 | 잘못된 메시지인 경우 표시됩니다. |
EOVERFLOW | 75 | 정의된 데이터 타입에 비해 값이 너무 큰 경우 표시됩니다. |
ENOTUNIQ | 76 | 네트워크에서 이름이 고유하지 않은 경우 표시됩니다. |
EBADFD | 77 | 파일 설명자가 잘못된 상태인 경우 표시됩니다. |
EREMCHG | 78 | 원격 주소가 변경된 경우 표시됩니다. |
엘리바CC | 79 | 필요한 공유 라이브러리에 액세스할 수 없는 경우 표시됩니다. |
엘리바드 | 80 | 손상된 공유 라이브러리에 접근한 경우 표시됩니다. |
엘리브CN | 81 | a.out에 .lib 섹션이 손상된 경우 표시됩니다. |
엘리맥스 | 82 | 너무 많은 공유 라이브러리에서 연결을 시도하는 경우 표시됩니다. |
엘리벡 | 83 | 공유 라이브러리를 직접 실행할 수 없는 경우에 표시됩니다. |
EILSEQ | 84 | 유효하지 않거나 불완전한 멀티바이트 또는 와이드 문자에 대해 표시됩니다. |
ERESTART | 85 | 중단된 시스템 콜을 다시 시작해야 함을 알리기 위해 표시됩니다. |
에스트라이프 | 86 | 스트림 파이프 오류가 있는 경우 표시됩니다. |
유저 | 87 | 너무 많은 사용자에게 표시됩니다. |
ENOTSOCK | 88 | 비소켓에서 소켓 동작을 하는 경우에 표시됩니다. |
EDESTADDRREQ | 89 | 목적지 주소가 필요한 경우 표시됩니다. |
EMSGSIZE | 90 | 메시지가 너무 길면 표시됩니다. |
프로토타입 | 91 | 소켓에 대한 프로토콜 유형이 잘못된 경우 표시됩니다. |
이노프로투프트 | 92 | 프로토콜을 사용할 수 없는 경우 표시됩니다. |
에프로토노스지원 | 93 | 프로토콜이 지원되지 않는 경우 표시됩니다. |
ESOCKTNOS지원 | 94 | 소켓 유형이 지원되지 않는 경우 표시됩니다. |
EOPNOTSUPP | 95 | 해당 작업이 지원되지 않는 경우 표시됩니다. |
EPFNOS지원 | 96 | 프로토콜 계열이 지원되지 않는 경우 표시됩니다. |
EAFNO지원 | 97 | 해당 주소 계열이 프로토콜에서 지원되지 않는 경우 표시됩니다. |
에드리누스 | 98 | 이미 사용 중인 주소인 경우 표시됩니다. |
EADRNOTAVAIL | 99 | 시스템이 요청한 주소를 할당할 수 없는 경우 표시됩니다. |
ENETDOWN | 100 | 네트워크가 다운된 경우 표시됩니다. |
에네터치 | 101 | 네트워크에 연결할 수 없는 경우 표시됩니다. |
에네트리셋 | 102 | 재설정 시 네트워크 연결이 끊어진 경우 표시됩니다. |
에코나보티드 | 103 | 소프트웨어로 인해 연결이 중단된 경우 표시됩니다. |
ECONNRESET | 104 | Peer에 의해 연결이 재설정된 경우 표시됩니다. |
ENOBUFS | 105 | 사용 가능한 버퍼 공간이 없을 경우 표시됩니다. |
에스콘 | 106 | 전송 끝점이 이미 연결된 경우 표시됩니다. |
ENOTCONN | 107 | 전송 끝점이 연결되지 않은 경우 표시됩니다. |
종료 | 108 | 전송 끝점 종료 후 시스템이 보낼 수 없는 경우 표시됩니다. |
ETOOMANYREFS | 109 | 참조가 너무 많을 경우 표시됩니다: 접속할 수 없습니다. |
시간 초과 | 110 | 연결 시간이 초과된 경우 표시됩니다. |
동의하지 않음 | 111 | 연결이 거부된 경우 표시됩니다. |
EHOSTDOWN | 112 | 호스트가 다운된 경우 표시됩니다. |
EHOSTUNREACH | 113 | 호스트로의 경로가 없을 경우 표시됩니다. |
이미 | 114 | 이미 작업이 진행 중인 경우 표시됩니다. |
각 진행 상황 | 115 | 현재 작업이 진행 중인 경우 표시됩니다. |
딸깍 하는 소리 | 116 | 오래된 파일 핸들에 대해 표시됩니다. |
EUCLEAN | 117 | 구조물에 청소가 필요한 경우 표시됩니다. |
제복 | 118 | XENIX 명명된 유형 파일이 아닌 경우에 표시됩니다. |
가능 | 119 | 사용 가능한 XENIX 세마포어가 없는 경우 표시됩니다. |
에이스남 | 120 | 명명된 유형의 파일이 있는 경우 표시됩니다. |
에레모티오 | 121 | Remote I/O 에러인 경우 표시됩니다. |
EDQUOT | 122 | 디스크 할당량을 초과한 경우 표시됩니다. |
에노메디움 | 123 | 매체가 발견되지 않은 경우 표시됩니다. |
EMEDIUMTYPE | 124 | 매체 종류가 잘못된 경우 표시됩니다. |
취소됨 | 125 | 작업이 취소된 경우 표시됩니다. |
이노키 | 126 | 필요한 키가 없는 경우 표시됩니다. |
EKEY가 만료되었습니다. | 127 | 키가 만료된 경우 표시됩니다. |
EKEY취소됨 | 128 | 키가 취소된 경우 표시됩니다. |
EKEY가 거부되었습니다. | 129 | 서비스에서 키를 거부한 경우 표시됩니다. |
EOWNERDEAD | 130 | 소유자가 사망한 경우 표시됩니다. |
ENOT복구 가능 | 131 | 복구할 수 없는 상태인 경우 표시됩니다. |
ERFKILL | 132 | RF-Kill로 인해 동작이 불가능할 경우 표시됩니다. |
EHWPOISON | 133 | 메모리 페이지에 하드웨어 오류가 있는 경우 표시됩니다. |