Rational Developer for System z
Enterprise COBOL for z/OS バージョン 4.1 プログラミング・ガイド


UNIX/POSIX API の呼び出し

標準の UNIX/POSIX 関数は、CALL literal ステートメントを 使用して、z/OS UNIX プログラムおよび従来の z/OS COBOL プログラムから呼び出すことができます。 これらの関数は、言語環境プログラム の一部です。

これらは C 関数なので、BY VALUE によって引数を渡さなければなりません。文字ストリングは、ヌル終了ストリングを指し示す BY VALUE ポインターとして渡さなければなりません。これらの関数を呼び出すプログラムをコンパイルするときは、コンパイラー・オプション NODYNAM および PGMNAME(LONGMIXED) を使用する必要があります。

fork()、exec()、および spawn() 関数は、COBOL プログラムから、または COBOL プログラムと同じプロセスに含まれている非 COBOL プログラムから呼び出すことができます。ただし、以下の制約事項に留意しなければなりません。

exec() 関数と spawn() 関数は、新規 UNIX プロセス内で新規の 言語環境プログラム・エンクレーブを開始します。 したがって、exec() または spawn() 関数のターゲット・プログラムはメインプログラムであり、プロセス内のすべての COBOL プログラムは、すべてのファイルをクローズした初期状態で開始します。

SIGYSAMP データ・セットには、一部の POSIX ルーチンを呼び出すサンプル・コードが用意されています。

表 1. POSIX 関数呼び出しを使用したサンプル
目的 サンプル 使用される関数
一部のファイルおよびディレクトリー・ルーチンの使用法を示す IGYTFL1
  • getcwd()
  • mkdir()
  • rmdir()
  • access()
iconv ルーチンを使用してデータを変換する方法を示す IGYTCNV
  • iconv_open()
  • iconv()
  • iconv_close()
exec() ルーチンを使用して、他のプロセス関連ルーチンと一緒に新規プログラムを実行する方法を示す IGYTEXC、IGYTEXC1
  • fork()
  • getpid()
  • getppid()
  • execl()
  • perror()
  • wait()
errno 値の入手方法を示す IGYTERNO、IGYTGETE
  • perror()
  • fopen()
プロセス間通信メッセージ・ルーチンの使用法を示す IGYTMSQ、IGYTMSQ2
  • ftok()
  • msgget()
  • msgsnd()
  • perror()
  • fopen()
  • fclose()
  • msgrcv()
  • msgctl()
  • perror()

ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)