使用文件状态键

对文件执行每个输入或输出语句后,系统将更新文件状态键的 两位数位置 中的值。 通常,第一个 位置 中的零表示操作成功,而两个 位置 中的零表示未发生异常。

关于此任务

通过编码建立文件状态密钥:

  • FILE-CONTROL 段中的 FILE STATUS 子句:
    
    FILE STATUS IS data-name-1
    
  • DATA DIVISION (WORKING-STORAGELOCAL-STORAGELINKAGE SECTION) 中的数据定义,例如:
    
    WORKING-STORAGE SECTION.
    01  data-name-1  PIC 9(2)  USAGE NATIONAL.
    

将文件状态键 data-name-1 指定为两字符类别字母数字或类别国家项,或指定为两位数的分区十进制或国家十进制项。 无法始终找到此 data-name-1

您的程序可以检查文件状态键以发现是否发生了错误,如果发生了错误,那么还可以检查发生了什么类型的错误。 例如,假设 FILE STATUS 子句的编码如下所示:


FILE STATUS IS FS-CODE

FS-CODE 被 COBOL 用来保存类似的状态信息:

此图显示了 FS-CODE 21 ,其中 2 被标记为无效键, 1 被标记为序列错误。

对于每个文件,请遵循以下规则:

  • 为每个文件定义不同的文件状态键。

    这样做意味着您可以确定文件输入或输出异常 (例如应用程序逻辑错误或磁盘错误) 的原因。

  • 检查每个输入或输出请求后的文件状态键。

    如果文件状态键包含除 0 以外的值,那么程序可以发出错误消息或根据该值执行操作。

    您不必重置文件状态键代码,因为它是在每次输入或输出尝试后设置的。

除了文件状态键外,您还可以在 FILE STATUS 子句中对第二个标识进行编码,以获取有关文件系统输入或输出请求的更详细信息。 有关详细信息,请参阅有关文件系统状态码的相关任务。

您可以单独使用文件状态键,也可以将其与 INVALID KEY 短语结合使用,或者对 EXCEPTIONERROR 声明式进行补充。 以此方式使用文件状态键可提供有关每个输入或输出操作的结果的精确信息。

相关参考
FILE STATUS 子句 (COBOL for Linux® on x86 Language Reference)
文件状态键 (COBOL for Linux on x86 Language Reference)