「COBOL」C から OpenCOBOL を呼び出す
OpenCOBOL を C から呼び出してみました。
内容としては、以下のドキュメントに書いてあるものそのままです。
まぁ、忘れないようにメモ。
・OpenCOBOL - B-Wiki - UserManual/2_3
http://www.opencobol.org/modules/bwiki/index.php?UserManual%2F2_3
[ 環境情報 ]
CentOS 6.2
OpenCOBOL 2.0
GCC 4.4.7
1. COBOL プログラムの作成 ( hello.cob )
Hello だけ表示する単純なものにしました。
identification division. program-id. hello. environment division. procedure division.. display "hello". exit program.
2. C プログラムを作成 ( main.c )
#include <stdio.h> #include <libcob.h> extern int hello(); void main() { cob_init(0, NULL); printf("start\n"); hello(); printf("end\n"); }
3. コンパイル
ドキュメント通りのコマンドを実行する。
gcc -c `cob-config --cflags` main.c cobc -c -static hello.cob cobc -x -o hello hello.o main.o
上記実行ファイル hello が作成される。以下の出力が得られればとりあえず成功。
./hello start hello end
以上です。
■ 備考
COBOL プログラムの最後を "stop run." としてしまっててかなりはまりました。
これだと、COBOL プログラムから制御が返らない?とかなんとかで ( 詳細は全くわかりません )、
上記のプログラムだと「end」の出力が得られません。
きっと、COBOL 知っている人はすぐわかる事なんでしょうねぇ・・・