はじめに
前回は、OpenCOBOL相互のプログラム連携について、機能確認を行いました。しかしながら、プログラム連携はCOBOL相互だけで行うことは少なく、COBOLと他言語で作成されたプログラムで行うのが一般的です。
今回は、OpenCOBOLとC言語で、呼出側、被呼出側のサンプルプログラムをそれぞれ作成し、COBOL言語仕様によるプログラム連携について解説します。
前回の記事
対象読者
OpenCOBOLと連携するプログラムをC言語で解説するので、基本的なC言語について理解している読者を対象とします。また、Linux環境が前提のため、基本的なLinuxコマンドを理解している読者を対象とします。
必要な環境
- Linux動作環境
- OpenCOBOL開発環境
LinuxにおけるOpenCOBOL開発環境の構築は、COBOL言語をLinux環境で動かすを参照ください。 - C言語開発環境
連携するプログラムをCで作成します。通常のLinux環境ではgcc(GNU C compiler)が導入されています。本稿ではgccを使用しています。
複数プログラム連携のしくみ
異なる言語間のプログラムで処理を継続させるためには、実行の制御とデータの引渡しについて考慮する必要があります。OpenCOBOLとCによる連携のしくみを簡単な図にしてみました。
プログラム間のパラメータはデータ項目の先頭アドレスを引き渡し、OpenCOBOLのPROGRAM-IDとCの関数名を一致させることにより、プログラム間連携を果たしています。
以後、本稿ではコンパイル後、コマンドラインから実行されるプログラムを「メイン処理プログラム」、メイン処理プログラムからCALL文等により実行されるプログラムを「連携先プログラム」と呼ぶことにします。