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.errorCodeIBM® i 파일 I/O 오류를 발견한 EGL 런타임 서비스 I/O 루틴의 리턴 코드를 포함합니다.

다음 테이블은 상태 키 값, EGL I/O 오류 값, sysVar.errorCode 간의 대응을 표시합니다. 하나의 sysVar.errorCode에 대응할 수 있는 다수의 COBOL 파일 상태 키 값이 있습니다.

표 1. 상태 키 값, I/O 오류 값, sysVar.errorCode 간의 대응
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