Ibm midrange 如何在c++;

Ibm midrange 如何在c++;,ibm-midrange,rpgle,ile-c++,Ibm Midrange,Rpgle,Ile C++,使用ILE编译器,在RPG中,可以使用获取有关 当前用户、作业名称等 你如何在C++程序中得到相同的信息,使用ILE?< P>在C++中没有直接等价于RPG的PSD。p> (对于那些不知道的人,在RPG编程语言中,您可以声明一个称为“程序状态数据结构”的数据结构,它将自动填充大量有关运行时环境的信息,包括作业标识符(如进程id)、用户名、上次发生的错误以及大量其他信息。) 如果你能具体告诉我们你在寻找什么信息,以及你需要什么平台(或者你是否需要跨平台),那么也许我们可以帮助。< / P> < P

使用ILE编译器,在RPG中,可以使用获取有关 当前用户、作业名称等


<>你如何在C++程序中得到相同的信息,使用ILE?

< P>在C++中没有直接等价于RPG的PSD。p> (对于那些不知道的人,在RPG编程语言中,您可以声明一个称为“程序状态数据结构”的数据结构,它将自动填充大量有关运行时环境的信息,包括作业标识符(如进程id)、用户名、上次发生的错误以及大量其他信息。)


如果你能具体告诉我们你在寻找什么信息,以及你需要什么平台(或者你是否需要跨平台),那么也许我们可以帮助。< / P> < P> >在史葛的回答中,RPG中的数据结构就像C++中的一个结构——可以构造一个包含这些数据的结构,人们可能会用对系统API的各种调用来填充其中的一些。然而,有些东西并不容易获得。

QUSRJOBI api将为您提供您提到的信息。返回的结构jobInfo在标题QUSRJOBI.h(QSYSINC.h文件)中定义,并将返回当前作业名称/用户名和作业编号,如果按以下方式调用,则返回更多内容:

Qwc_JOBI0600_t jobInfo
QUSRJOBI(&jobInfo,sizeof(Qwc_JOBI0600_t),“JOBI0600”,“*”,
“”、&errCode)

< P>你可以从第一个传递到C或C++程序的参数中获得程序名称和程序库。argv[0]是格式为“MYLIB/MYPGM”的字符串


如果您需要模块名,最简单的方法可能是使用QMHSNDPM向自己发送消息,然后使用格式为RCVM0300的QMHRCVPM接收消息,其中包含“发送者信息”;发送方信息具有发送模块名和接收模块名。您也可以通过这种方式获得程序名和库。

为什么接近票数的人会投票支持“不清楚您在问什么”?如果您对IBM中端产品非常熟悉,那么这是一个非常清楚的问题。请不要在你一无所知的问题上投票。@JohnY为什么会有负面评论,而不是试图澄清问题或建议的编辑?因为C++而不是IBM中频看到的大多数人都会对谷歌的事情产生任何疑问。我已经尝试过编辑,但由于我不熟悉IBM Midrange,我相信您可以做得更好。@James:我理解您的观点,我本可以不那么消极。(我本可以更消极一些)我没有编辑,因为我真的觉得它不需要。需要任何解释的人需要从头开始研究整个问题。他们不知道什么是ILE,什么是RPG,什么是IBM中端,什么是PSD。他们不需要澄清。他们需要辅导。另一方面,如果你不需要教程,那么你也不需要澄清,因为OP用非常清晰的方式表达了一些东西,甚至包括了PSD中的例子。正如史葛所回答的,在ILE C++中没有单一的PSDS等价物。如果您对所需的信息更具体一些,我们可以为您指出正确的API组合。我对作业编号、当前用户和程序库感兴趣,但我问了一个一般性问题,因为我想我将来还需要其他类型的信息。我无法想象OP会在IBM I以外的任何平台上使用它。但是有了他想要的PSD信息的细节,我们可以更好地指导他使用正确的API。