You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SYSOUT头部显示当前程序运行所在的Load Library?

获取z/OS COBOL程序运行所在的Load Library方法

好问题!在z/OS COBOL环境里,要获取程序当前运行所在的Load Library,确实不像用WHEN-COMPILED拿编译时间那么直接,但有几种可靠的LE(Language Environment)原生方法可以实现,我给你详细说明:

方法一:使用LE服务例程CEELOCN

这是最直接的方式,CEELOCN是LE提供的服务,专门用于获取当前模块的加载位置信息,包括它所在的数据集(也就是Load Library)名称。

COBOL代码示例

IDENTIFICATION DIVISION.
       PROGRAM-ID. GET-LOAD-LIB.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       *> CEELOCN的参数结构,参考IBM文档定义
       01  CEELOCN-PARM-BLOCK.
           05  MODULE-NAME        PIC X(8) VALUE LOW-VALUES. 
           *> 传LOW-VALUES表示获取当前运行模块的信息
           05  RC                 PIC S9(9) BINARY.
           05  MODULE-ADDR        POINTER.
           05  LOAD-MODULE-NAME   PIC X(8).
           05  DATASET-NAME       PIC X(44). 
           *> z/OS数据集名最长44字符,刚好匹配
           05  RESERVED-AREA      PIC X(12) VALUE LOW-VALUES.
       01  WS-CALL-RC            PIC S9(9) BINARY.

       PROCEDURE DIVISION.
           CALL 'CEELOCN' USING CEELOCN-PARM-BLOCK
               GIVING WS-CALL-RC.

           IF WS-CALL-RC = 0
               THEN
                   DISPLAY '当前程序所在Load Library: ' 
                           FUNCTION TRIM(DATASET-NAME)
               ELSE
                   DISPLAY '获取Load Library失败,返回码: ' WS-CALL-RC
           END-IF.

           STOP RUN.

关键说明

  • 当你给MODULE-NAME传LOW-VALUES时,CEELOCN会自动返回当前正在运行的模块的信息。
  • 返回的DATASET-NAME字段会包含完整的Load Library数据集名称,比如USER.LOADLIB或者SYS1.LINKLIB,你可以直接把它加到SYSOUT头部里。
  • 这个方法支持所有LE环境下的COBOL程序,不管是主程序还是被调用的子程序,也能正确识别从LPA、MLPA等系统链接库加载的模块。

方法二:非LE环境的备选方案(极少用到)

如果你的程序是老的非LE COBOL程序(现在这种情况非常少见),可以通过调用系统宏LOADxx或者解析CAA(Common Anchor Area)来获取,但实现起来复杂很多,而且兼容性差。建议优先使用CEELOCN,因为现在z/OS上的COBOL程序基本都是基于LE运行的。

补充提示

  • 你可以把获取Load Library的逻辑和已经实现的WHEN-COMPILED逻辑整合到SYSOUT头部输出里,比如:
    DISPLAY '程序名称: ' PROGRAM-NAME
    DISPLAY '编译时间: ' WHEN-COMPILED
    DISPLAY '运行Load库: ' FUNCTION TRIM(DATASET-NAME)
    
  • 注意DATASET-NAME是固定44字节,输出时记得用FUNCTION TRIM去掉末尾的空格,让SYSOUT显示更整洁。

内容的提问来源于stack exchange,提问作者SaggingRufus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:34:47