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

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

 2008-11-26 08:14:40 来源:WEB开发网   
核心提示: 在原生 z/OS 中的 TSO/E 中使用 CC 或 CXX 提供的 REXX 可执行程序 在原生 z/OS 中使用批作业 为了告诉编译器您的程序是 C 还是 C++,需要:USS:用适当的扩展名命名程序文件:program.c (小写的 C)表示 C 程序;program.C (大写的

在原生 z/OS 中的 TSO/E 中使用 CC 或 CXX 提供的 REXX 可执行程序

在原生 z/OS 中使用批作业

为了告诉编译器您的程序是 C 还是 C++,需要:

USS:用适当的扩展名命名程序文件:program.c (小写的 C)表示 C 程序;program.C (大写的 C)表示 C++ 程序。

原生 z/OS 批作业:对于 C++ 程序,使用 C 编译器的 CXX 运行时选项。C 编译器 SCCNPRC 数据集包含两组过程,可以从批作业调用它们来编译代码:CBC* 用于 C++,EBC* 用于 C。

原生 z/OS TSO/E:对于 C 代码使用 CC REXX 可执行程序,对于 C++ 代码使用 CXX REXX 可执行程序。

我们来看看在使用 C 代码时的一些问题。

代码位置

C 代码(和头文件)既可以放在 USS 文件中,也可以放在原生 z/OS 数据集中(PDS、PDS/E 或 Sequential,而且可以采用固定或可变记录两种格式)。无论在哪里编译代码,都是这样的:

可以在 USS 中从原生 z/OS 数据集编译 C 代码;只需使用特殊的 USS “//” 格式指定一个原生 z/OS 序列化数据集。下面这个 USS shell 命令演示编译 PDS MYHLQ.PGMS.C 中的 PGM1 程序:

c89 -o pgm1.o "//'MYHLQ.PGMS.C(PGM1)'"

通过在 SYSIN DD 语句上指定一个 PATH,可以在批作业中从 USS 文件编译 C 代码,比如 清单 1 中的示例。

清单 1. 编译 USS 文件中的 C 代码的 JCL

//COMPILE EXEC CCNC001,                  
//SYSIN  DD PATH='/u/mydir/pgms/pgm1.c',     
//       PATHDISP=(KEEP,KEEP),PATHOPTS=(ORDONLY)  

如果决定在原生 z/OS 数据集中存储代码,那么可能需要给它分配 RECFM=VB, LRECL=256 这样的 DCB 设置(尤其是,如果要把代码迁移到另一个 UNIX 平台)。不必像 COBOL 和 HLASM 那样把代码限制在 1 到 72 列。

上一页  1 2 3 4 5 6 7  下一页

Tags:原生 OS zOS

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