问题:
1)*pgm与*module的差别?
2)pr extpgm定义的pgm是*pgm?还是*module?怎样调用?
3)bnddir的作用?
4)pr extpgm与pr extproc定义使用的区别?
答:
1)*pgm与*module的差别?
*pgm是*module+可执行环境,可以在libl中被程序call或被callp。
*mdule可以在三种环境被调用执行:a)*pgm(*module+可执行环境);b)bnddir中的*module;c)bndidr下通过*srvpgm的symbol链接的*module。
2)pr extpgm定义的pgm是*pgm?还是*module?怎样调用?
pr extpgm定义可以libl下的*pgm;或bnddir的*module;或bndidr下通过*srvpgm的symbol链接的*module,可以在libl中被程序call,或被callp在libl下调用,或bnddir下作为*module被调用。
3)bnddir的作用?
a) bnddir是一个路径,有类似libl的功能;
b)bndidr是一个可执行的shell;
c)H表bnddir可以声明多个路径,如:H bnddir('MyBndDir1':'Tools':...)
d) H表bnddir路径,在*module生成时不起作为,但使用相关的路径,要在编译参数bnddir中声明所用到的路径。H表bnddir只对生成后的路径起作。
4)pr extpgm与pr extproc定义使用的区别?
a)procedure定义和概念:procedure有P B ....P E定义+prototype原型定义;
b)pr extpgm只能用在外部的*pgm或bndidr下的module;且没有P B ....P E定义,H表中只能main定义(默认值),且有*entry+plist,或prototype原型定义,是PEP处理单元。
c)pr extproc只能用在bnddir下的*module,或通过*srvpgm链接的*module(procedure);H表中可以main,或nomain定义。
阅读(274) | 评论(0) | 转发(0) |