
PHP의 PCNTL 모듈의 errno 함수는 오류 코드를 반환하는 함수입니다. pcntl_errno() 함수를 사용하여 오류 코드를 확인할 수 있습니다.
pcntl_errno() 함수는 현재 오류 코드를 반환합니다. 예를 들어, fork() 함수를 호출한 후, pcntl_errno() 함수를 사용하여 오류 코드를 확인하려면 다음과 같이 사용할 수 있습니다.
#hostingforum.kr
php
$pid = pcntl_fork();
if ($pid == -1) {
echo "fork() 함수 호출 시 오류가 발생했습니다. (errno: " . pcntl_errno() . ")n";
} elseif ($pid == 0) {
// 자식 프로세스 코드
} else {
// 부모 프로세스 코드
}
errno 함수의 오류 코드는 POSIX 오류 코드를 반환합니다. POSIX 오류 코드는 다음과 같습니다.
- E2BIG: 인자 목록이 너무 길다.
- EACCES: 권한이 없습니다.
- EADDRINUSE: 주소가 이미 사용 중이다.
- EADDRNOTAVAIL: 주소가 사용할 수 없다.
- EAFNOSUPPORT: 주소 형식이 지원되지 않는다.
- EAGAIN: 리소스가 현재 사용 중이다.
- EALREADY: 이미 연결되어 있다.
- EBADF: 잘못된 파일 디스크립터.
- EBADMSG: 잘못된 메시지.
- ECANCELED: 작업이 취소되었다.
- ECHILD: 자식 프로세스가 존재하지 않는다.
- ECONNABORTED: 연결이 중단되었다.
- ECONNREFUSED: 연결이 거부되었다.
- ECONNRESET: 연결이 종료되었다.
- EDEADLK: 데드락이 발생했다.
- EDESTADDRREQ: 목적지 주소가 필요하다.
- EDOM: 잘못된 인자.
- EEXIST: 파일이나 디렉토리가 이미 존재한다.
- EFAULT: 잘못된 주소.
- EFBIG: 파일 크기가 너무 크다.
- EHOSTDOWN: 호스트가 다운되었다.
- EHOSTUNREACH: 호스트에 도달할 수 없다.
- EIDRM: ID가 삭제되었다.
- EILSEQ: 잘못된 문자열.
- EINPROGRESS: 작업이 진행 중이다.
- EINTR: 인터럽트가 발생했다.
- EINVAL: 잘못된 인자.
- EIO: 입출력 오류.
- EISCONN: 이미 연결되어 있다.
- EISDIR: 디렉토리이므로 열 수 없다.
- ELOOP: 심볼릭 링크가 너무 깊다.
- EMFILE: 열린 파일의 최대 개수에 도달했다.
- EMLINK: 링크의 최대 개수에 도달했다.
- EMSGSIZE: 메시지 크기가 너무 크다.
- ENAMETOOLONG: 파일 이름이 너무 길다.
- ENETDOWN: 네트워크가 다운되었다.
- ENETUNREACH: 네트워크에 도달할 수 없다.
- ENFILE: 열린 파일의 최대 개수에 도달했다.
- ENOBUFS: 버퍼가 부족하다.
- ENODATA: 데이터가 없다.
- ENODEV: 장치가 존재하지 않는다.
- ENOENT: 파일이나 디렉토리가 존재하지 않는다.
- ENOEXEC: 명령어를 실행할 수 없다.
- ENOLCK: 잠금이 존재하지 않는다.
- ENOLINK: 링크가 존재하지 않는다.
- ENOMEM: 메모리가 부족하다.
- ENOMSG: 메시지가 존재하지 않는다.
- ENOPROTOOPT: 프로토콜 옵션이 지원되지 않는다.
- ENOSPC: 장치가 사용할 수 없을 때.
- ENOSR: 소켓이 사용할 수 없을 때.
- ENOSTR: 스트림이 존재하지 않는다.
- ENOSYS: 시스템 콜이 지원되지 않는다.
- ENOTBLK: 블록 장치가 존재하지 않는다.
- ENOTDIR: 디렉토리가 존재하지 않는다.
- ENOTEMPTY: 디렉토리가 비어있지 않다.
- ENOTSOCK: 소켓이 존재하지 않는다.
- ENOTSUP: 지원되지 않는 옵션.
- ENOTTY: 장치가 존재하지 않는다.
- ENXIO: 장치가 사용할 수 없을 때.
- EOPNOTSET: 오퍼레이션을 완료할 수 없다.
- EOVERFLOW: 데이터가 너무 많다.
- EOWNERDEAD: 소유자가 죽었다.
- EPERM: 권한이 없습니다.
- EPFNOSUPPORT: 프로토콜이 지원되지 않는다.
- EPIPE: 파이프가 연결이 끊겼다.
- EPROTO: 프로토콜 오류.
- EPROTONOSUPPORT: 프로토콜이 지원되지 않는다.
- EPROTOTYPE: 프로토콜이 지원되지 않는다.
- ERANGE: 범위가 너무 크다.
- EREAD: 읽기 오류.
- EROFS: 읽기/쓰기 오류.
- ESPIPE: 파이프가 존재하지 않는다.
- ESRCH: 프로세스가 존재하지 않는다.
- ESOCKTNOSUPPORT: 소켓이 지원되지 않는다.
- ESPIPE: 파이프가 존재하지 않는다.
- ESTALE: 파일이 존재하지 않는다.
- ETIME: 시간이 초과했다.
- ETIMEDOUT: 시간이 초과했다.
- ETXTBSY: 텍스트 파일이 사용 중이다.
- EUCLEAN: 파일이 깨끗하지 않다.
- EUNATCH: 파일이 존재하지 않는다.
- EUSERS: 사용자 수가 초과했다.
- EWOULDBLOCK: 리소스가 현재 사용 중이다.
- EXDEV: 파일이 다른 장치에 있다.
위 오류 코드를 해석하려면, 오류 코드를 확인하고 해당 오류 코드의 설명을 참조하면 됩니다.
2025-07-09 16:41