1.1.10.3 説明
prepro-ims.plは、z/OS上のCプログラムをTuxedo ART for IMSで実行可能な形式に変換するために使用されます。ファイルの変換に失敗した場合、障害情報および障害の原因となったソース・ファイルの行が stderrに出力されます。完了すると、サマリーがstdoutに報告されます。
処理ルールは次のとおりです。
- 削除
#pragma runoptsの行と他のブラグマ・ディレクティブをコメント化します。IBM IMSの下で呼び出された場合、
env(IMS)は適切な動作環境を確立し、plist(IMS)は適切なパラメータ・リストを確立します。それは、Tuxedo ART for IMSランタイムでは不要であり、削除する必要があります。 - 再構築
関数
ctdli()/aibtdli()は、引数リストに後続のNULLを追加することで再構築されました。このNULLは、Tuxedo ART for IMS引数リストの終わりを示すために使用されます。aibtdli()では、parmcountパラメータが削除されます。関数
main()引数リストは削除されました(argc、argv、envpなど)。メインフレームでは、IMSはグローバル・リストおよびそのリストを定義するマクロを使用します。Tuxedo ART for IMSでは、PCBリストを取得するためのGETメソッドとして__getcb(int)関数が実装されています。exit()関数は、__art_ims_return ()という名前に変更されました。IBM IMSドキュメントによれば、プログラムが処理するメッセージがない場合、mainから返すか、またはexit()を呼び出すことでIMSに制御が返されます。exit()によって、コンテナ・サーバーが予期せずに終了した場合、__art_ims_return ()関数が使用され、制御をコンテナ・サーバーに返すための手助けをします。次の表に、処理ルールの例を示します。
表1-3 処理ルールの例
ルール ソース 宛先 削除 #pragma runopts(env(IMS), plist(IMS))/*#pragma runopts(env(IMS), plist(IMS))*/再構築 ctdli(func_GU, io_pcb, msg_seg_io_area);ctdli(func_GU, io_pcb, msg_seg_io_area, NULL);aibtdli(parmcount, func_GU, io_pcb, msg_seg_io_area);aibtdli(func_GU, io_pcb, msg_seg_io_area, NULL);main(/* if any argument */)main()exit(val)__art_ims_return(val);ノート:
prepro-ims.plは、メインフレームからオープン・システムへの一部の汎用Cの移植を処理できません。
親トピック: prepro-ims.pl