c - 使用 SYSIN DD * 将参数从 JCL 传递到 C 程序

标签 c parameters jcl

任何人都可以向我展示如何将 JCL 中 SYSIN DD * 的参数传递给 C 程序的示例吗?

我曾经让 JCL 程序使用 PARM 选项将参数传递给 C 程序,但 PARM 选项有 100 个字符的限制,因此,要求我在 JCL 中使用 SYSIN DD * 选项。但是,我的旧 C 程序使用 argv 参数传递样式,我不知道在使用 SYSIN DD * 时这是否仍然适用。

<小时/>

这就是我旧的 JCL 代码的样子:

/ SET P1='RBR1 FIRBS.AIC_REHBFG_FDG.BM '                                        
// SET P2='BGM.LOL_FDSG '                                                       
// SET P3='"" '                                                                 
// SET P4='X F GMHKD'                                                           
//ST01    EXEC PGM=VCMBGJF,                                                     
//PARM='&P1.&P2.&P3.&P4' 

这就是我的新 JCL 代码的样子:

//ST01    EXEC PGM=VCMBGJF
//SYSIN    DD *    
RBR1 FIRBS.AIC_REHBFG_FDG.BM                                       
BGM.LOL_FDSG                                                      
""                                                               
X F GMHKD
/* 

最佳答案

您是否尝试过读取 STDIN,如果是,它是否从 SYSIN 返回数据,或者尝试打开 SYSIN,如 fp = fopen("SYSIN", "r");

或者,尝试将 SYSIN 的 DD 名称更改为 STDIN。 DD * 表示从后面的文本行中提取数据。它不必命名为 SYSIN。

最后,如果其他方法都失败,请阅读 C/大型机用户指南。 (我没有,而且是很久以前在大型机上写的,所以具体忘记了。)

最后,第一个示例似乎有一些错误:

// SET P1='RBR1 FIRBS.AIC_REHBFG_FDG.BM '                                        
// SET P2='BGM.LOL_FDSG '                                                       
// SET P3='"" '                                                                 
// SET P4='X F GMHKD'                                                           
//ST01    EXEC PGM=VCMBGJF,PARM='&P1.&P2.&P3.&P4'
//* there should be a space between // and PARM 

我提到这一点是因为您列出的 parm 数据小于 100 个字符,因此修复 PARM 语句可能会修复代码的运行。

关于c - 使用 SYSIN DD * 将参数从 JCL 传递到 C 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18450094/

相关文章:

c - 在结构体数组内分配结构体数组

c - 有没有办法在 HEALPix C 库中查找像素的顶点?

c++ - 功能参数

c# - 在 C# 中处理多参数查询的模式或最佳实践

python - 支持单个字符串和数组作为一个参数

c - 获取内核模块中的所有挂载点

c - 为什么getnameinfo()检索重复的地址?

printing - JCL/MVS 脚本变量中是否有要避免的特殊字符列表

db2 - COBOL 程序、JCL 作业,还是两者兼而有之?

mainframe - 主机 JCL 中的 DPRTY 是什么?