popen

関数ファイルシステム

概要

 状態:-  閲覧数:2,702  投稿日:2017-03-23  更新日:2017-03-29  
popen
・プロセスへのファイルポインタをオープンする

標準入出力
・標準入力(キーボードからの入力)
・標準出力(画面への出力)


・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()」の方が高機能なので、こちらを利用


コメント投稿(ログインが必要)



類似度ページランキング
順位 ページタイトル抜粋
1 popen 80
2 Propel 55
3 phpinfo 50
4 Exceptionクラス 47
5 Doctrine 46
6 Composer 43
7 Generators 40
8 new clone違い 38
9 ErrorExceptionクラス 36
10 Cookie 36
11 syntax error 35
12 include_path 35
13 include 33
14 json_encode関数 33
15 session_save_path() 33
16 foreach文 31
17 realpath 31
18 session_start() 30
19 php-devel 29
20 set_error_handler 27
2026/7/24 14:17 更新
週間人気ページランキング / 7-17 → 7-23
順位 ページタイトル抜粋 アクセス数
1 PHP用語 6
2 コンストラクタ デストラクタ | クラスとオブジェクト 4
2 マジックメソッド(クラスとオブジェクト) カテゴリー 4
3 ログイン 3
4 Parse error: syntax error, unexpected $end in ○○.php on line △△ | Parse error(エラーメッセージ) 2
4 PHPでcurlを使用するためには?/ 2.オプション設定 / curlでPOST送信 2
4 You currently have Essential access which includes access to Twitter API v2 endpoints only. If you need access to this endpoint, you’ll need to apply for Elevated access via the Developer Portal. | Twitter API(エラーメッセージ) 2
4 htmlspecialchars / htmlentities / addslashes / mysql_real_escape_string / mysqli_real_escape_string | セキュリティ 2
4 デフォルト引数 | 関数 2
4 Fatal error: Uncaught Error: Class 'Mecab_Tagger' not found in /var/www/★★.php:☆☆ | Fatal error(エラーメッセージ) 2
4 遭遇例1.存在する間違ったデータベース名を指定 2
4 リファレンス基本操作は3通り 2
5 __setメソッド | マジックメソッド(クラスとオブジェクト) 1
5 P … 子クラスインスタンス生成。親クラス内での$this 1
5 Fatal error: Uncaught RuntimeException: SplFileObject::__construct(): failed to open stream: Permission denied in | Fatal error(エラーメッセージ) 1
5 Fatal error: Uncaught Wrench\Exception\HandshakeException: No accept header receieved on handshake response in ★★★ headless-chromium-php/vendor/wrench/wrench/lib/Wrench/Protocol/Protocol.php | エラーメッセージ 1
5 対応案B.文字列処理ではなく、配列処理を実施 1
5 PHPでどうしてもエラーが画面表示されない時は、HTMLコメントアウトを外してみる | エラーメッセージ 1
5 Fatal error: require_once(): Failed opening required 'PEAR.php' | Fatal error(エラーメッセージ) 1
5 PECLとは? 1
2026/7/24 5:05 更新