【问题标题】:What does Cobol file status 9Â mean?Cobol 文件状态 9 是什么意思?
【发布时间】:2021-03-23 01:28:54
【问题描述】:

我的问题是当我尝试在输入时打开一个大文件 (6GB) 时, 有一条消息说:

cobol file status code 9Â

我编译了程序并且没有错误,但是当我尝试运行它时, 我使用一个小的(例如 3 GB)我的程序可以正常工作。

有什么想法吗?

变量声明:

SELECT                                                       
MYFILE ASSIGN     MYFILE
ACCESS SEQUENTIAL 
STATUS IS XZ-STATUS6.  
===
OPEN INPUT  MYFILE 
===
READ  MYFILE NEXT AT  END  MOVE  1  TO  ZFIN-F3

【问题讨论】:

  • 你是在 32 位还是 64 位上运行?可能有一个与此相关的限制......
  • 可能,194 - 文件太大
  • 哪个COBOL?您已经使用了所有可以找到的 COBOL 标签。您应该使用特定于您使用的版本的那个。我不知道我应该参考哪本手册。
  • 在 ISO-8859-1 中是 194 - 所以肯定是“文件大小太大”。

标签: cobol microfocus cobol85 cobol.net procobol


【解决方案1】:

您可能想查看this link,其中包含一些可能适用于您的情况的信息。其中包含的一些信息:

  1. 关于文件状态

如果您为文件定义了文件状态数据项,则在对文件进行每次输入/输出操作(OPEN、CLOSE、READ、WRITE、REWRITE、START 和 DELETE)之后,运行时系统会将其更新为指明操作是如何完成的。

定义文件状态数据项是可选的。如果未声明文件状态数据项并且发生严重的文件错误,COBOL 运行时系统将显示错误消息并中止您的程序。

您应该在每次输入/输出操作后检查文件状态数据项,以查看操作是否成功完成。

  1. 关于文件状态数据项

文件状态是一个两字节的代码。如果文件状态数据项的第一个字节包含值 9,则表示 COBOL 运行时系统错误。在这种情况下,第二个字节是一个包含错误代码的二进制字段。

  1. 示例代码(ws-file-status 对应你的 XZ-STATUS6)

     ...
     working-storage section.
     01 ws-file-status.
        05 status-key-1                          pic x.
        05 status-key-2                          pic x.
        05 binary-status redefines status-key-2  pic 99 comp-x.
     ...
     ...
     procedure division.
     ...
     perform check-status.
     ...
     check-status.
        evaluate status-key-1
           when "0" next sentence
           when "1" display "end of file reached"
           ...
           when "9" display "run-time-system error"
              perform check-mf-error-message
        end-evaluate.
     ...
     check-mf-error-message.
        evaluate binary-status
           when 002 display "file not open"
           when 007 display "disk space exhausted"
           when 013 display "file not found"
           when 024 display "disk error    "
           when 065 display "file locked      "
           when 068 display "record locked    "
           when 039 display "record inconsistent"
           when 146 display "no current record  "
           when 180 display "file malformed     "
           when 208 display "network error      "
           when 213 display "too many locks     "
           when other display "not error status "
           display binary-status
        end-evaluate.
    

请注意您的(奇怪的)值Â 是否与binary-status(在check-mf-error-message 内)列出的任何值相对应,但至少它应该有助于了解如何正确显示您的实际文件状态代码.

【讨论】:

    【解决方案2】:

    感谢大家的宝贵反馈,问题在于我用来计算一些大数字的数组的大小,我已将数组设置为最大值,现在可以正常工作了

    【讨论】:

      猜你喜欢
      • 2018-07-05
      • 2021-07-03
      • 2011-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多