WEB开发网
开发学院操作系统Linux/Unix 原生 z/OS 和 zOS UNIX Systems Services 之间的编... 阅读

原生 z/OS 和 zOS UNIX Systems Services 之间的编程

 2008-11-26 08:14:40 来源:WEB开发网   
核心提示: 清单 5. 访问 USS 函数的 HLASM 代码 L R15,16R15 -> Common Vector Table L R15,CVTCSRT-CVT(15) R15 -> CSRTABLE L R15,24(R15) R15 -> CSR slot L R15,2

清单 5. 访问 USS 函数的 HLASM 代码

     L   R15,16         R15 -> Common Vector Table    
     L   R15,CVTCSRT-CVT(15)   R15 -> CSRTABLE            
     L   R15,24(R15)       R15 -> CSR slot            
     L   R15,276(R15)      R15 = Address of getpid svc  
     CALL (15),(PROCESSID),VL                       

如果不想通过控制块获得 USS 服务的地址,还有另外两种方法:

对包含所需服务的模块(对于前一个示例中是 BPX1GID)执行 z/OS LOAD。

链接 SYS1.CSSLIB 中的链接存根。在这种情况下,清单 5 中的代码应该改为 清单 6。在这个示例中,BPX1GID 在链接编辑时指向 SYS1.CSSLIB 中的存根,进而连接到相关的服务。

清单 6. 使用 CALL 访问 USS 函数的 HLASM 代码

CALL BPX1GID,(PROCESSID),VL  

关于 HLASM 可用的所有 USS 服务的信息,请参考 IBM z/OS UNIX System Services Programming: Assembler Callable Services Reference。在 SYS1.MACLIB 中,原生 z/OS 也为的 USS 区域提供了映射 DSECT。

从 HLASM 访问 USS 数据集

从 HLASM 访问 USS 数据集是非常容易的。有两种方法:

调用相关的 USS Assembler Callable Service。

使用 OPEN、BLDL 和 CLOSE 等原生 z/OS BPAM 宏。更多信息参见 IBM z/OS DFSMS Using Data Sets 手册。

在默认情况下,USS 文件以 EBCDIC 格式存储信息(所以不是 ASCII;需要 EBCDIC 转换)。

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:原生 OS zOS

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接