Next: ファイルのアクセス権を調べる
Up: ファイル
Previous: プロセスの終端の検出
ファイルと同様にプロセスをオープンpopen()し,
データをプロセスに送ったり(fprintf())したり,
データをプロセスから受け取ったり(fscanf())できる。
プロセスをpopen()でオープンしたあとは,
プロセスディスクリプタによってプロセスを指定する。
これは,ファイルディスクリプタと同様に扱える。
通信が不要になったプロセスはpclose()によって終了する。
プロセスディスクリプタを用いたプロセス間通信の例を次に示す。
if ((pid = popen("bc")) < 0) {
error("Can't open %s", "bc");
}
fprintf(pid, "3 + 4¥n");
{a} = fscanf(pid, "%d");
print a;
pclose(pid);
次に,gnuplotとのプロセス間通信の例を示す。
if ((pid = popen("gnuplot -title sample")) < 0) {
error("Can't open %s", "gnuplot");
}
fprintf(pid, "plot sin(x)¥n");
pause;
fprintf(pid, "quit¥n");
pclose(pid);
}
Masanobu KOGA
平成10年8月19日