Skip to Content

How do I interpret file status 9? and other EXFS extended file status codes (e.g. 9i,105)?

Estimated Reading Time: 1 Minutes

The letter after the 9 is the character representation of the extended file status using ASCII encoding.
For example, a 9i is the same as file status 9 with extended status 105 (i.e. EXFS=105) because "i" is 105 in ASCII.
You can find these extended File Status Codes in isCOBOL's documentation, in the Appendices on the "File Status Codes" page. The text for each code is also listed below.
You can get extended error information by either:

  1. Creating a runtime log with iscobol.tracelevel set to a value that includes 8
       iscobol.tracelevel=15
       iscobol.logfile=<path>/mylog.txt
    
  2. Capture the error and call "C$RERR"
       display-file-error.
          call "C$RERR"     using crerr-status, crerr-text
          call "C$RERRNAME" using rerrname
          display message "Error "  crerr-status, ", ", crerr-text " on " rerrname 
    
The following list of extended values is from the runtime framework source code:
   static final String errMess[] = {
         /* 100 */ "duplicate record",
         /* 101 */ "file not open",
         /* 102 */ "illegal argument",
         /* 103 */ "illegal key desc",
         /* 104 */ "too many files open",
         /* 105 */ "bad isam file format",
         /* 106 */ "non-exclusive access",
         /* 107 */ "record locked",
         /* 108 */ "key already exists",
         /* 109 */ "is primary key",
         /* 110 */ "end/begin of file",
         /* 111 */ "no record found",
         /* 112 */ "no current record",
         /* 113 */ "file locked",
         /* 114 */ "file name too long",
         /* 115 */ "",
         /* 116 */ "can't alloc memory",
         /* 117 */ "bad custom collating",
         /* 118 */ "Cannot read log file record",
         /* 119 */ "Record format of transaction-log file cannot be recognized",
         /* 120 */ "Cannot open transaction-log file",
         /* 121 */ "Cannot write to transaction-log file",
         /* 122 */ "Not in transaction",
         /* 123 */ "",
         /* 124 */ "Beginning of transaction not found",
         /* 125 */ "incompatible operation with open mode",
         /* 126 */ "function not supported",
         /* 127 */ "disk full",
         /* 128 */ "rec changed",
         /* 129 */ "no more locks available",
         /* 130 */ "missing file",
         /* 131 */ "invalid permission",
         /* 132 */ "file exixsts",
         /* 133 */ "system error",
         /* 134 */ "Unknown error",
         /* 135 */ "Unknown error",
         /* 136 */ "Unknown error",
         /* 137 */ "Unknown error",
         /* 138 */ "Unknown error",
         /* 139 */ "Unknown error",
         /* 140 */ "Unknown error",
         /* 141 */ "Unknown error",
         /* 142 */ "Unknown error",
         /* 143 */ "Unknown error",
         /* 144 */ "Unknown error",
         /* 145 */ "Unknown error",
         /* 146 */ "Unknown error",
         /* 147 */ "Unknown error",
         /* 148 */ "Unknown error",
         /* 149 */ "Unknown error",
         /* 150 */ "Too many connections",
         /* 151 */ "Malformed url",
         /* 152 */ "Error on connection: error in iserrio",
         /* 153 */ "Error on connection: no permission",
         /* END */ "Unknown error"

How do I interpret file status 9? and other EXFS extended file status codes (e.g. 9i,105)?