[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 メーリングリストの案内