[PHP-users 34226] Re: tempnamで生成されるユニークなファイル名について

小澤 直史 ozawa @ k-sd.jp
2008年 12月 25日 (木) 15:45:39 JST


小澤です。
回答ありがとうございます。

やはり、tempnam関数で確実にユニークなキーを作るのは無理 
なのですね。
uniqidは知りませんでした...。

システムマニュアルは、web上で見られるものとほぼ同じ内容 
でした。
実際にどんな挙動をしているかを知るには、Cのソースを見る 
しかないのですね。

メールアカウントで認証する方法はあきらめて、
メール本文中の文字列でやるよう変更しようかと思います。

ありがとうございました。


On 2008/12/25, at 12:59, Norio Suzuki wrote:

> 鈴木です。
>
> At Thu, 25 Dec 2008 12:44:49 +0900,
> 小澤 直史 wrote:
>>
>> (1)tempnam関数の名称が重複することは、同じサーバーを使ってい
>> るかぎり、
>> 絶対に起こらないものなのでしょうか。
>
> こちらを参照すると「ある時点では同じ名前を持つファイルが存 
> 在しないファ
> イル名」と書いてあります。
>
> http://www.linux.or.jp/JM/html/LDP_man-pages/man3/tmpnam.3.html
>
> 将来的に絶対に重複しないかどうかと言われると、そのような保 
> 証はないでしょう。
>
>
>> (2)現在はユニークな部分が6文字のファイルが生成されるの
>> ですが、
>> これはファイルが増えていくにつれ、増加していくものでしょうか。
>> つまり、使えば使うほど、ファイル名は長くなっていくものなので
>> しょうか。
>
> これは良く分かりません。
>
>
>
>> (3)また、こういった関数の挙動はどのように調べたらいいのでしょ
>> うか。
>> マニュアルには、
>> 「疑問がある場合は、tempnam(3) に関するシステムドキュメ
>> ントを参照ください」
>> となっていますが、これはどうやって読むものなのでしょう
>> か...。
>> これを読めばand理解できれば、解決する問題なのだとも思う
>> のですが....。
>
> Linux などであれば、man コマンドを使って、
>
>  $ man tempnam
>
> で読めると思いますよ。
>
> あるいは、先ほどの JM を利用させて頂くなど。
>
> http://www.linux.or.jp/JM/
>
>
>
> ただ、ユニークな ID を作るとなると、uniqid 関数 
> とかよく使いますけどね。
>
> http://jp2.php.net/manual/ja/function.uniqid.php
>
> これにしても本当に重複しない ID を取得するには  
> prefix にホスト名やら
> (マルチスレッドでないなら)プロセス番号やらを付加する等の 
> 工夫が必要に
> なりますが。
>
> # そうしていくと、長さ制限の問題解決にはならないかも。。。
>
> ;; ---------------------------------------------------------
> ;; 鈴木則夫 <suzuki @ tricorn.co.jp>
> ;; トライコーン株式会社 http://www.tricorn.co.jp/
> ;; 160-0015 東京都新宿区大京町24 住友外苑ビル5F
> ;; Tel 03-5919-0041 Fax 03-5919-0042
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読 
> みください
> http://oldwww.php.gr.jp/php/novice.php3





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