概要
状態:-
閲覧数:2,353
投稿日:2017-03-23
更新日:2017-03-29
popen
・プロセスへのファイルポインタをオープンする
標準入出力
・標準入力(キーボードからの入力)
・標準出力(画面への出力)
・popenの場合一行分もしくは指定バイト数読み取ればいったん戻ってくる
・execの場合は起動したプロセスが終了するまで制御が戻ってこない
・popen について
簡単に言うと
・現在のプロセスとは独立した新たなプロセスを作成(オープン)すること
popen()
・入力もしくは出力(読み書き)のいずれか一方でのみ使われる片方向ストリーム
proc_open()
・入出力双方向
・popenより詳細な設定が可能
※php では入力、もしくは出力のみの外部コマンド実行は popen() を利用できるが、 入出力双方向が必要な場合は、 proc_open() を利用
▽PHP: proc_open - Manual
>proc_open() は popen() と よく似ていますが、プログラムの実行をさらに細かく制御できる点で違います
引数
・popen(string $command , string $mode )
プロセスへのファイルポインタをオープンにする
・proc_open(string $cmd , array $descriptorspec , array &$pipes [, string $cwd [, array $env [, array $other_options ]]])
プロセスへの入出力ファイルポインタを開く
個人的結論
・「proc_open()」の方が高機能なので、こちらを利用
・プロセスへのファイルポインタをオープンする
標準入出力
・標準入力(キーボードからの入力)
・標準出力(画面への出力)
・popenの場合一行分もしくは指定バイト数読み取ればいったん戻ってくる
・execの場合は起動したプロセスが終了するまで制御が戻ってこない
・popen について
「popen関数」「proc_open関数」の役割
簡単に言うと
・現在のプロセスとは独立した新たなプロセスを作成(オープン)すること
「popen」「proc_open」の違い
popen()
・入力もしくは出力(読み書き)のいずれか一方でのみ使われる片方向ストリーム
proc_open()
・入出力双方向
・popenより詳細な設定が可能
※php では入力、もしくは出力のみの外部コマンド実行は popen() を利用できるが、 入出力双方向が必要な場合は、 proc_open() を利用
▽PHP: proc_open - Manual
>proc_open() は popen() と よく似ていますが、プログラムの実行をさらに細かく制御できる点で違います
引数
・popen(string $command , string $mode )
プロセスへのファイルポインタをオープンにする
・proc_open(string $cmd , array $descriptorspec , array &$pipes [, string $cwd [, array $env [, array $other_options ]]])
プロセスへの入出力ファイルポインタを開く
個人的結論
・「proc_open()」の方が高機能なので、こちらを利用