next up previous contents
Next: pow Up: リファレンスマニュアル Previous: poles

  
popen

【目的】
popen - パイプをオープンする
【形式】
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);
【参照】
pclose(2.157), fprintf(2.77), fscanf(2.82)


Masanobu KOGA 平成11年10月2日