免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1915 | 回复: 5
上一主题 下一主题

400 开发问题请教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-03-16 12:09 |只看该作者 |倒序浏览
400的编程可以用C来编写,如下:
#include <stdio.h>
#include <stdlib.h> ---------------------------------(***)
#include <string.h> ---------------------------------(***)
int main(int argc, char *argv[])
{
int ind;
int iEndSts = 240;
char UserRetCode[10];
system("DSPLIBL");
ind = sprintf(UserRetCode, "%s", "USERRC=");
ind += sprintf(UserRetCode+ind, "%d", iEndSts);
putenv(UserRetCode);
exit(iEndSts);
}
(***) >>> this is a required include <<<

对于C语言来说,exit,或者return函数来控制退出的返回码。如exit(0),exit(1)等。

请问大家,如果是用 CLP,RPG等来编写程序,也可以控制程序退出的返回码吗?

论坛徽章:
0
2 [报告]
发表于 2013-03-18 21:25 |只看该作者
ding,ding,ding,ding,ding

论坛徽章:
0
3 [报告]
发表于 2013-03-19 08:08 |只看该作者
call  pgm1 parm('var1' 'var2')
VAR1,VAR2就是輸入和返回的參數

论坛徽章:
0
4 [报告]
发表于 2013-03-19 10:13 |只看该作者
本帖最后由 passthru 于 2013-03-19 10:29 编辑

在OS400下,有一套OS400对出错信息处理机制。

在CLP中,交给OS400系统执行的命令,OS400提供MONMSG指令对可能出现的出错信息代码进行监控。对每一个命令的出错信息代码,可以查询CL reference redbook手册。CLP根据错误代码再进行相应的处理,即C语言中的exit(x),x不为0。

CLP程序中,通常采用MONMSG(CPF0000)对一个命令进行监控。这里的CPF0000是一个错误信息扑捉器,或一个错误信息陷阱。对一个命令执行过程中,比如命令处理所输入的运行参数有错误,或文件不存在等错误信息,CPF信息都是一个具体的非0值。

在RPGLE中,有两种做法对程序中出现的可能的非语法逻辑错误,比如除法中分母为0、数字上或下溢出等等,进行出错信息监控。

第一种方法在可能出错的语句范围设置mintor、on error和endmon。其中,minter和on error之间是程序代码和字段,程序出错时,就执行on error到endmon之间的出错处理程序代码。

第二种方法,用程序中定义错误处理例程,程序执行过程中,若出现非语法逻辑错误时,程序自动转到错误处理例程中执行处理。最普遍做法,就是在错误处理例程中用DUMP命令把出错信息发送到假脱机文件中,以方便查看。RPGLE中出错信息处理例程有两个形式:a)最常用的的*PSSR,即一个子程序(subroutine)来处理;b)程序员可以在LSD中规定字段PROC_NAME内容为*PROC后要执行错误处理例程的子程序名,用来取代*PSSR中的错误处理代码。

RPGLE中出错处理手段都可以达到C语言中的exit(x)后续处理的处理效果。

论坛徽章:
0
5 [报告]
发表于 2013-03-19 23:27 |只看该作者
NINERI 发表于 2013-03-19 08:08
call  pgm1 parm('var1' 'var2')
VAR1,VAR2就是輸入和返回的參數


请问,如果创建了PRG程序如:
pgm1 parm('var1' 'var2')
,其中var1是 Input变量,var2是Output变量。

那么如果我写一个c来调用这个pgm,如何获取到var2这个output变量的值?

非常感谢

论坛徽章:
0
6
发表于 2013-04-02 09:10
回复 1# softiger


    技术大咖群187264569,不是同事就是朋友哦,一起成长吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP