[PHP-users 2772] Re: PHP3.0.18 のコマンドライン版のインストールでエラー

KIM php-users@php.gr.jp
Wed, 17 Oct 2001 09:22:19 +0900


木村@ISTです。

Wed, 17 Oct 2001 08:02:11 +0900 頃の、
"[PHP-users 2771] PHP3.0.18のコマンドライン版のインストールでエラー" において、
""鮫川 将人" <masahito@yk.rim.or.jp>"さんは書きました:

> 今、私が扱っているとあるサーバー上にコマンドライン版のPHP3をインストールしよ
> うとしたら、make時にエラーが生じてうまくいきません。
> 
> 現環境
> redhatLinux7.1[J]
> apache1.3.17
> postgreSQL7.0.3
> gcc-2.96
> インストール対象:php-3.0.18-i18n-ja-2
> 
> コンパイルオプション
> ./configure --with-pgsql --enable-track-vars --enable-i18n --enable-mbregex
> 
> そのときのエラーの内容は以下の通りです。
> functions/file.o: In function `php3_tempnam':
> /usr/local/src/php-3.0.18-i18n-ja-2/functions/file.c:463: the use of
> `tempnam' is dangerous, better use `mkstemp'

エラーの内容は、「tempnamは危険なので、mkstempを使いましょう」という
gccコンパイラの指示ですね。
#これってエラーなのですね。ワーニングじゃなくて。。。

Linuxであれば、tempnamをmkstempで置き換えた差分を公開している人が居ました。

http://marc.theaimsgroup.com/?l=php-dev&m=97972576709196&w=2

ちなみに、tempnamはmime.c/file.c/post.cで使用されています。
これで、コンパイル/動作させてみてください。

便乗質問ですが、Windows上でこのような修正をしようとしています。
どのような関数を使えばよいのか分かりません。

ちなみに、GetTempFileName()を使用して修正すると、
一時ファイルが残ってしまうようです。

単純に、mkstempに置き換わるようなWindows上の関数は無いのでしょうか?

*********************************************
木村正人[kim]      E-Mail kim@ist.fujitsu.com
(株)富士通インフォソフトテクノロジ 沼津事業所
       private Web http://www.izu.co.jp/~kim/
*********************************************