[PHP-users 21143]Re: pcntl_fork について

Moriyoshi Koizumi moriyoshi @ at.wakwak.com
2004年 4月 6日 (火) 06:44:58 JST


小泉です。

PHP のスクリプト中で取得できる標準IOハンドルは
すべて dup() されています。したがって、クローズしても
大本のハンドルは閉じられません。

fopen('php://stdin', 'r') で取得したものも同様です。

この問題は将来解決されるそうです。

Bug #27865: http://bugs.php.net/27865



On 2004/04/03, at 1:22, Eiji Miwa wrote:

>
>  ミワです。
>
>  PHP 4.3.4 のCGI版で、pcntl_fork の実験をしています。
>  (--enable-pcntl してあります。)
>
>  以下のコードをブラウザから実行してみると、
>  ブラウザが解放されず、「OK」が表示されるまで
>  sleep しただけ待たされてしまいます。
> ---
> #! /usr/local/bin/php
> <?php
> 	
> 	$pid = pcntl_fork ();
> 	
> 	if ( $pid == -1 ) die ( 'could not fork' );
> 	else if ( $pid )
> 	{
> 		print "Content-type: text/html\n\n";
> 		print "OK";
> 		exit;
> 	}
> 	else
> 	{
> 		sleep (20);
> 		exit;
> 	}
> 	
> ?>
> ---
>  perl の場合だと、close ( STDOUT ); としていたので、
>  fclose ( STDOUT ); としてみたのですが、結果は同じでした。
>
>  すぐにブラウザを解放させるには、どのようにすればよいのでしょうか?
>  お分かりになる方がみえましたら、ご教授いただけると助かります。
>  
> --
>  miwa at offside.ne.jp
>
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://www.php.gr.jp/php/novice.php3
>



PHP-users メーリングリストの案内