gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 15:46:23 25 4
gpt4 key购买 nike

任何人都可以向我展示如何将 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com