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

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

 2008-11-26 08:14:40 来源:WEB开发网   
核心提示: 装载模块和对象位置人们通常认为,模块必须驻留在运行它们的位置;对于 USS 是 USS 目录,原生 z/OS 和 zOS UNIX Systems Services 之间的编程(9),对于原生 z/OS 是装载库/PDSE,但是,包括: 在绑定器 SYSLIN DD 中添加一个 INCLU

装载模块和对象位置

人们通常认为,模块必须驻留在运行它们的位置;对于 USS 是 USS 目录,对于原生 z/OS 是装载库/PDSE。但是,这种看法是不对的。对于 USS 应用程序,会在 USS 库路径(在环境变量中指定)和原生 z/OS 序列(依次搜索 Job Pack Area、STEPLIB DD、JOBLIB DD、LPA 和 Linklist)中搜索调用的模块。首先搜索的位置取决于 POSIX 运行时选项是 ON 还是 OFF,如果 POSIX 是 ON,就先搜索库路径;如果 POSIX 是 OFF,就先搜索原生 z/OS 库。

可以在 C 程序中使用 #pragma runopts(POSIX(ON)) 语句、JCL EXEC 参数 PARM='POSIX(ON)' 或 Language Environment 运行时选项(使用 _CEE_RUNOPTS 环境变量)设置这个选项。

同样,原生 z/OS 应用程序可以驻留在 USS 文件中。但是这种方式的问题是,只能从在 USS 中运行的程序(而且 USS 库路径指向这个目录)或者调用 USS loadhfs 服务的程序调用它们。

对象模块(已经编译/汇编,但还没有绑定的模块)也可以驻留在 PDS、PDSE 或 UNIX 库中。在绑定程序时,可以引用这些地方的对象。

执行调用的程序 —— 静态与动态

大多数程序员都会面对的一个问题是,是静态地(被调用的程序被链接编辑/绑定到同一装载模块)还是动态地(被调用的程序是在运行时装载的单独模块)调用另一个程序。

静态链接

把一个模块静态链接到程序模块有几种方法,包括:

在绑定器 SYSLIN DD 中添加一个 INCLUDE 语句来手工包含这个模块(只适用于原生 z/OS)。例如:

INCLUDE SYSLIB(INCMOD)

指定绑定器 CALL 选项,让绑定步骤的 SYSLIB DD 可以使用这个模块(只适用于原生 z/OS)。

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

Tags:原生 OS zOS

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