libuv에서 에러는 음수로 정의된 상수들로 표현됩니다. 기본적으로 상태(status) 매개변수가 있는 경우나 API 함수가 정수를 반환할 때, 음수 값은 에러를 의미합니다.
콜백을 받는 함수가 에러를 반환하면, 콜백은 호출되지 않습니다.
참고
구현 세부 사항으로서, 유닉스에서는 에러 코드를 -errno로 부정한 값을 사용하며, Windows에서는 libuv가 임의의 음수로 정의합니다.
UV_E2BIG: 인수 목록이 너무 깁니다.
UV_EACCES: 권한 거부
UV_EADDRINUSE: 주소가 이미 사용 중임
UV_EADDRNOTAVAIL: 주소를 사용할 수 없음
UV_EAFNOSUPPORT: 주소 패밀리가 지원되지 않음
UV_EAGAIN: 리소스를 일시적으로 사용할 수 없음
UV_EAI_ADDRFAMILY: 주소 패밀리가 지원되지 않음
UV_EAI_AGAIN: 일시적인 실패
UV_EAI_BADFLAGS: 잘못된 ai_flags 값
UV_EAI_BADHINTS: 잘못된 hints 값
UV_EAI_CANCELED: 요청 취소됨
UV_EAI_FAIL: 영구적인 실패
UV_EAI_FAMILY: ai_family가 지원되지 않음
UV_EAI_MEMORY: 메모리 부족
UV_EAI_NODATA: 주소가 없음
UV_EAI_NONAME: 알 수 없는 노드나 서비스
UV_EAI_OVERFLOW: 인수 버퍼 오버플로우
UV_EAI_PROTOCOL: 알려지지 않은 프로토콜
UV_EAI_SERVICE: 소켓 타입에 대해 서비스를 사용할 수 없음
UV_EAI_SOCKTYPE: 소켓 타입이 지원되지 않음
UV_EALREADY: 연결이 이미 진행 중임
UV_EBADF: 잘못된 파일 디스크립터
UV_EBUSY: 리소스가 바쁘거나 잠겨 있음
UV_ECANCELED: 작업 취소됨
UV_ECHARSET: 잘못된 유니코드 문자
UV_ECONNABORTED: 소프트웨어에 의한 연결 중단
UV_ECONNREFUSED: 연결 거부됨
UV_ECONNRESET: 피어에 의한 연결 재설정
UV_EDESTADDRREQ: 목적지 주소가 필요함
UV_EEXIST: 파일이 이미 존재함
UV_EFAULT: 시스템 호출 인수에 잘못된 주소
UV_EFBIG: 파일이 너무 큼
UV_EHOSTUNREACH: 호스트에 접근할 수 없음
UV_EINTR: 인터럽트된 시스템 호출
UV_EINVAL: 잘못된 인수
UV_EIO: 입출력 에러
UV_EISCONN: 소켓이 이미 연결됨
UV_EISDIR: 디렉토리에 대해 잘못된 작업
UV_ELOOP: 너무 많은 심볼릭 링크가 발견됨
UV_EMFILE: 열려 있는 파일이 너무 많음
UV_EMSGSIZE: 메시지가 너무 큼
UV_ENAMETOOLONG: 이름이 너무 김
UV_ENETDOWN: 네트워크가 다운됨
UV_ENETUNREACH: 네트워크에 접근할 수 없음
UV_ENFILE: 파일 테이블 오버플로우
UV_ENOBUFS: 사용할 수 있는 버퍼 공간이 없음
UV_ENODEV: 장치가 없음
UV_ENOENT: 파일 또는 디렉토리가 없음
UV_ENOMEM: 메모리 부족
UV_ENONET: 네트워크에 연결되어 있지 않음
UV_ENOPROTOOPT: 프로토콜을 사용할 수 없음
UV_ENOSPC: 장치에 남은 공간이 없음
UV_ENOSYS: 기능이 구현되지 않음
UV_ENOTCONN: 소켓이 연결되지 않음
UV_ENOTDIR: 디렉토리가 아님
UV_ENOTEMPTY: 디렉토리가 비어 있지 않음
UV_ENOTSOCK: 소켓이 아닌 대상에 대해 소켓 작업 수행
UV_ENOTSUP: 소켓에서 지원되지 않는 작업
UV_EOVERFLOW: 정의된 데이터 유형에 대해 값이 너무 큼
UV_EPERM: 작업이 허용되지 않음
UV_EPIPE: 파이프가 끊어짐
UV_EPROTO: 프로토콜 에러
UV_EPROTONOSUPPORT: 프로토콜이 지원되지 않음
UV_EPROTOTYPE: 소켓에 대한 잘못된 프로토콜 타입
UV_ERANGE: 결과가 너무 큼
UV_EROFS: 읽기 전용 파일 시스템
UV_ESHUTDOWN: 전송 종료 후 보낼 수 없음
UV_ESPIPE: 유효하지 않은 탐색
UV_ESRCH: 해당 프로세스가 없음
UV_ETIMEDOUT: 연결 시간 초과
UV_ETXTBSY: 텍스트 파일이 사용 중임
UV_EXDEV: 다른 장치 간의 링크가 허용되지 않음
UV_UNKNOWN: 알 수 없는 에러
UV_EOF: 파일의 끝
UV_ENXIO: 장치나 주소가 없음
UV_EMLINK: 링크가 너무 많음
UV_ENOTTY: 장치에 적절하지 않은 ioctl
UV_EFTYPE: 적절하지 않은 파일 타입 또는 형식
UV_EILSEQ: 잘못된 바이트 시퀀스
UV_ESOCKTNOSUPPORT: 소켓 타입이 지원되지 않음
UV_EUNATCH: 프로토콜 드라이버가 연결되지 않음
UVERRNO_MAP(iter_macro)
위의 에러 상수 각각에 대해 iter_macro 호출을 확장하는 매크로입니다. iter_macro는 두 개의 인수를 가지고 호출되며, 에러 상수의 이름에서 UV 접두사를 제거한 이름과 에러 메시지 문자열 리터럴이 사용됩니다.
const char *uv_strerror(int err)
주어진 에러 코드에 대한 에러 메시지를 반환합니다. 알 수 없는 에러 코드에 대해서 호출 시 약간의 메모리 누수가 발생할 수 있습니다.
char uv_strerror_r(int err, char buf, size_t buflen)
주어진 에러 코드에 대한 에러 메시지를 반환하며, 널 종료된 메시지는 사용자 제공 버퍼 buf에 최대 buflen 바이트까지 저장됩니다. (버전 1.22.0부터 새로 추가됨)
const char *uv_err_name(int err)
주어진 에러 코드에 대한 에러 이름을 반환합니다. 알 수 없는 에러 코드에 대해서 호출 시 약간의 메모리 누수가 발생할 수 있습니다.
char uv_err_name_r(int err, char buf, size_t buflen)
주어진 에러 코드에 대한 에러 이름을 반환하며, 널 종료된 이름은 사용자 제공 버퍼 buf에 최대 buflen 바이트까지 저장됩니다. (버전 1.22.0부터 새로 추가됨)
int uv_translate_sys_error(int sys_errno)
주어진 플랫폼 의존적인 에러 코드에 대한 libuv 에러 코드를 반환합니다. Unix에서는 POSIX 에러 코드(errno에 저장된 값)로, Windows에서는 Win32 에러 코드(GetLastError() 또는 WSAGetLastError()로 반환된 값)를 변환합니다. sys_errno가 이미 libuv 에러라면 그대로 반환됩니다. (버전 1.10.0에서 함수가 공개됨)