使用ILE编译器,在RPG中,您可以使用PSDS获取有关的信息 当前用户,工作名称等..
如何使用ILE在C ++程序中获得相同的信息?
答案 0 :(得分:5)
QUSRJOBI api将为您提供您提到的信息。返回的struct jobInfo在头文件QUSRJOBI.h(QSYSINC.H文件)中定义,如果这样调用,将返回当前作业名称/用户名和作业编号以及更多内容:
Qwc_JOBI0600_t jobInfo;
QUSRJOBI(& jobInfo,sizeof(Qwc_JOBI0600_t)," JOBI0600"," *",
" ",& errCode);
答案 1 :(得分:4)
在C ++中没有直接等同于RPG的PSDS。
(对于那些不知道的人,在RPG编程语言中,您可以声明一个名为“程序状态数据结构”的数据结构,它将自动填入大量有关运行时环境的信息,包括作业标识符(如进程ID),用户名,发生的最后一个错误以及许多其他信息。)
如果您能够具体告诉我们您正在寻找哪些信息,以及您需要哪种平台(或者您是否需要它是跨平台的),那么我们可以提供帮助。
答案 2 :(得分:3)
要添加到Scott的回复中,RPG中的数据结构就像C ++中的结构一样 - 可以构造一个包含该数据的结构,并且可以使用各种调用填充其中的一些结构。到系统API。然而,有些事情并不容易获得。
答案 3 :(得分:2)
您可以从传递给C或C ++程序的第一个参数中获取程序名称和程序库。 argv [0]是一个字符串形式为" MYLIB / MYPGM"。
如果您需要模块名称,可能最简单的方法是使用QMHSNDPM向您发送消息,然后使用格式为RCVM0300的QMHRCVPM接收消息,该消息具有"发送者信息&#34 ;;发件人信息具有发送模块名称和接收模块名称。您也可以通过这种方式获取程序名称和库。