in reply to Re: Re: Re: Non-Duplicate File Names, Security, and Self Cleaning
in thread Non-Duplicate File Names, Security, and Self Cleaning

I also didn't say that it's guaranteed to give you a unique filename.

Nope, but the OP asked for that.

$$ is uniqe as long as the system is not rebooted and as long as there is no overflow in the machines process counter. It might happen, but it's not very probable

pids are assigned sequentially until a certain point (most probably 32767) is reached. Then they wrap around to 0. Rebooting also resets the count to 0. The chances of either reaching 32767 or a reboot are just about 100%, which is more probable than two instances of the same script calling localtime within the same second.Incidently, on AIX pids maybe reused within seconds.

But regarding localtime: it's almost sure that you will get the same result quite often

I'm not sure how? Do you mean by two instances of the same script both calling localtime at the same second?

  • Comment on Re: Re: Re: Re: Non-Duplicate File Names, Security, and Self Cleaning
  • Download Code

Replies are listed 'Best First'.
Re: Re: Re: Re: Re: Non-Duplicate File Names, Security, and Self Cleaning
by Skeeve (Parson) on Jun 08, 2003 at 11:56 UTC
    Do you mean by two instances of the same script both calling localtime at the same second?

    Exactly. IIRC the discussion was about a CGI. As ling as there is just one user - No Problem. But as soon as there is more than one chances are good that 2 users will click the button at the same time.

    However. Neither of our solutions is a perfect solution. Just ideas.

    If I had to calculate a new unique filename, I would still use $$ append a counter until I find a unique one. Additionally I would set a lock before searching for a free name.