原生 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 (大写的 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 列。
- ››OSC“回到顶部”代码
- ››OSCHINA 使用 Github 登录的源码
- ››OSGi Service Platform V4.2 新特性
- ››OS VM主机支持RedHat操作系统
- ››原生 z/OS 和 zOS UNIX Systems Services 之间的编...
- ››osworkflow 小培训
- ››osworkflow 小培训(2)
- ››osworkflow源码分析(一)
- ››osworkflow descriptor 解析 重要概念
- ››osworkflow descriptor 解析片断
- ››osworkflow部署描述
- ››osworkflow小测试练习之beanshell
更多精彩
赞助商链接