pclose サブルーチン

目的

プロセスへのパイプを閉じます。

ライブラリー

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

構文

#include <stdio.h>
int pclose ( Stream)
FILE *Stream;

説明

pcloseサブルーチンは、呼び出しプログラムと実行されるシェル・コマンドの間のパイプを閉じる。 popenサブルーチンで開いたストリームを閉じるには、pcloseサブルーチンを使用する。 pcloseサブルーチンは、関連するプロセスが終了するのを待って、コマンドの終了ステータスを返す。

注意元のプロセスとpopenプロセスが共通のファイルを読み書きする場合、 popenサブルーチンも pcloseサブルーチンもバッファ付き I/O を使用すべきではありません。 その場合、結果は予測できません。

fflushサブルーチンでバッファをフラッシュすることで、出力フィルタの問題を回避する。

パラメーター

項目 説明
stream オープンしたパイプのFILEポインタを指定する。

戻り値

pcloseサブルーチンは、Streamパラメータがpopenコマンドに関連付けられていない場合、または子プロセスのステータスを取得できなかった場合、値-11を返す。 それ以外の場合は、コマンド言語インタープリターの終了状況の値が戻されます。コマンド言語インタープリターを実行できない場合、これは 127 になります。

エラー・コード

アプリケーションに以下のものがあるとします。

  • waitサブルーチンをコール、
  • waitpidサブルーチンを、ゼロ以下のプロセスIDまたはコマンドラインインタープリターのプロセスIDで呼び出した、
  • マスクされた SIGCHILD シグナル、または
  • 上記のステップのいずれかを実行する可能性のある他の関数を呼び出す

これらの呼び出しのいずれかが原因でpcloseサブルーチンの終了ステータスが利用できなくなると、値-1が返され、errnoグローバル変数がECHILDに設定される。