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()引数リストは削除されました(argcargvenvpなど)。メインフレームでは、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の移植を処理できません。