pd = popen(cmd)
Integer pd;
String cmd;
【詳細】
popen(cmd)は,文字列 cmd で指定したプロセスを起動し,そのプロセス
との間にパイプをオープンする。オープンに成功すると正の整数(プロセス
ディスクリプタ),オープンに失敗すると負の整数を返す。
プロセスディスクリプタは,ファイルディスクリプタと同様に扱え,
fprintf() や fscanf() の第 1 引数に指定できる。以後,プロセス
ディスクリプタによってプロセスを指定する。fprintf() で出力した
データは起動されたプロセスの標準入力に送られ,そのプロセスが
標準出力に出力したデータは fscanf() で入力できる。不要になった
パイプは pclose() で閉じる。
【例題】
UNIXの演算用言語bcとのプロセス間通信の例を次に示す。
この例では,"3 + 4" を fprintf() でbcに送り,計算結果を
fscanf() で取り込む。
if ((pid = popen("bc")) < 0) {
error("Can't open %s", "bc");
}
fprintf(pid, "3 + 4¥n");
{a} = fscanf(pid, "%d");
fprintf(pid, "quit¥n");
pclose(pid);
【参照】