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

Im not sure if $$ is either new or unique...

but localtime() is.

Replies are listed 'Best First'.
Re: Re: Re: Non-Duplicate File Names, Security, and Self Cleaning
by Skeeve (Parson) on Jun 06, 2003 at 12:33 UTC
    $$ 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. I also didn't say that it's guaranteed to give you a unique filename. I just said, I would use it in the name. Not that I would use it as a name.

    But regarding localtime: it's almost sure that you will get the same result quite often. At least there is a delay of 1 second you will have to have before the script might be started again.

      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?

        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.