popen サブルーチン

目的

プロセスへのパイプを開始します。

ライブラリー

標準 C ライブラリー (libc.a)

構文

#include <stdio.h>
FILE *popen ( Command,  Type)
const char *Command, *Type;

説明

popenサブルーチンは、呼び出しプログラムと実行されるシェルコマンドの間にパイプを作成する。

注: popenサブルーチンは、shシェル・コマンドだけを実行する。 Commandパラメータが有効なshシェルコマンドでない場合、結果は予測できません。 端末が信頼状態の場合、tshシェルコマンドが実行される。

以前のpopenサブルーチン呼び出しによってオープンされたストリームが親プロセスでオープンされたままである場合、popenサブルーチンは子プロセスでそれらをクローズする。

popenサブルーチンは、ストリームの FILE構造体へのポインタを返す。

注意元のプロセスと popenサブルーチンで開始されたプロセスが同時に共通のファイルを読み書きする場合、どちらもバッファード I/O を使用すべきではありません。 その場合、結果は予測できません。

出力フィルターのいくつかの問題は、fflushサブルーチンでバッファをフラッシュすることで防ぐことができる。

パラメーター

項目 説明
Command シェル・コマンド行を含むヌル終了ストリングを指します。
Type 入出力モードを含むヌル終了ストリングを指します。 Typeパラメータにrを指定すると、Streamファイルから読み込むことによって、コマンドの標準出力から読み込むことができる。 Typeパラメータがwの場合、Streamファイルに書き込むことで、コマンドの標準入力に書き込むことができる。

オープン・ファイルは共有されるので、r型コマンドは入力フィルターとして、w型コマンドは出力フィルターとして使うことができる。

戻り値

popenサブルーチンは、ファイルやプロセスを作成できない場合、またはシェルにアクセスできない場合、ヌル・ポインタを返す。

エラー・コード

popenサブルーチンは、Typeパラメータが有効でない場合、EINVAL変数を設定することがあります。 また、popenサブルーチンは、forkサブルーチンや pipeサブルーチンで説明されているように、errnoグローバル変数を設定することができる。