C400

7. 外部PGMを呼び出してパラメータの戻り値を取得するには?

C/400から外部のプログラムを呼び出して、そのパラメーターの戻り値を取得する方法を紹介する。

#progma map によって実際のプログラムの名前を定義しておいてから#progma linkage によって

内部で使用する関数を定義して内部ではその関数を使用する。

C言語で外部プログラムの呼び出しはライブラリー・リストによってのみ行われることに注意。ライブラリーを

明示的に指定する方法はあるのかも知れないが詳細に調査してもその方法は見つからなかった。

従ってここでは ADDLIBLE によってオブジェクト・ライブラリーをライブラリー・リストに追加している。

0001.00 #include <stdio.h>
0002.00 #include <stdlib.h>
0003.00 #include <string.h>
0004.00                                     
0005.00 #pragma map(CltChkCL, "CLTCHKCL  ") 
0006.00 #pragma linkage(CltChkCL, OS)       
0007.00 void CltChkCL(char clt[8]);         
0008.00 #define TRUE         0              
0009.00 #define FALSE       -1              
0010.00                                     
0011.00 void main(void){                    
0012.00   char clt[8];                      
0013.00                                     
0014.00     system("ADDLIBLE MYLIB");       
0015.00     CltChkCL(clt);                  
0016.00     getchar();                      
0017.00 }