標準の 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 ルーチンを呼び出すサンプル・コードが用意されています。
| 目的 | サンプル | 使用される関数 |
|---|---|---|
| 一部のファイルおよびディレクトリー・ルーチンの使用法を示す | IGYTFL1 |
|
| iconv ルーチンを使用してデータを変換する方法を示す | IGYTCNV |
|
| exec() ルーチンを使用して、他のプロセス関連ルーチンと一緒に新規プログラムを実行する方法を示す | IGYTEXC、IGYTEXC1 |
|
| errno 値の入手方法を示す | IGYTERNO、IGYTGETE |
|
| プロセス間通信メッセージ・ルーチンの使用法を示す | IGYTMSQ、IGYTMSQ2 |
|