iSeriesC에 대한 sysVar.errorCode에서 파일 I/O 상태
V60ExceptionCompatibility 프로그램 특성을 예로 설정하면 sysVar.errorCode 시스템 변수가 iSeriesC 환경에서 파일 I/O에 대한 상태 코드를 포함합니다.
생성된 COBOL에 대해 sysCodes 빌드
디스크립터 옵션을 사용하여 파일 I/O 오류에 대해 리턴된
코드를 제어하십시오. sysCodes 빌드
디스크립터 옵션은 EGL I/O 오류 값에 영향을 미치지 않습니다.
- sysCodes 빌드 디스크립터 옵션을 "예"로 설정하면 sysVar.errorCode가 시스템에 의존하는 액세스 메소드 리턴 코드를 포함합니다. 이는 COBOL 파일 상태 키입니다. COBOL 파일 상태 키 값에 대한 정보는 i5/OS™ Information Center를 참조하십시오. sysVar.errorCode의 형식에 대한 세부사항은 errorCode의 내용을 참조하십시오.
- 반대로, sysCodes 빌드 디스크립터 옵션을 "아니오"로 설정하면 sysVar.errorCode가 IBM® i 파일 I/O 오류를 발견한 EGL 런타임 서비스 I/O 루틴의 리턴 코드를 포함합니다.
다음 테이블은 상태 키 값, EGL I/O 오류 값, sysVar.errorCode 간의 대응을 표시합니다. 하나의 sysVar.errorCode에 대응할 수 있는 다수의 COBOL 파일 상태 키 값이 있습니다.
| errorCode (sysCodes = "YES"), COBOL 파일 상태 키 값 | EGL I/O 오류 값 | errorCode (sysCodes = "NO") |
|---|---|---|
| 00,05,07 | [오류 없음] | 000 |
| 02 | 중복, ioError | 103 |
| 04(변수 길이 레코드) | [오류 없음] | 000 |
| 04 | invalidFormat, ioError, hardIOError | 220 |
| 10,14,46 | endOfFile, ioError | 102 |
| 22 | 고유, ioError | 206 |
| 23(START) | endOfFile, ioError | 102 |
| 23 | noRecordFound, ioError | 205 |
| 24,34(상대가 아니거나 0이 아닌 상대 키 액세스 방법) | 전체, ioError, hardIOError | 25A |
| 35 | fileNotFound, ioError, hardIOError | 251 |
| 38 | fileNotAvailable, ioError, hardIOError | 218 |
| 39,95 | invalidFormat, ioError | 220 |
| 9D | deadlock, ioError, hardIOError | 381 |
다른 모든 COBOL 파일 상태 키 값에 대해 sysVar.errorCode는
다음 테이블에 표시된 대로 요청의 유형을 기반으로 설정됩니다.
| 요청 유형 | EGL I/O 오류 값 | errorCode (sysCodes = "NO") |
|---|---|---|
| OPEN | ioError, hardIOError | 500 |
| CLOSE, UNLOCK | ioError, hardIOError | 989 |
| READ, START | ioError, hardIOError | 987 |
| WRITE | ioError, hardIOError | 988 |