Why does File::Temp use sysopen?
Because sysopen lets you use some useful open flags. Afaik, File::Temp uses this to avoid race conditions that would be created trying to emulate the same behavior with a plain open.
Update: Indeed, File::Temp uses the O_EXCL flag by default, which does the following:
In many systems the O_EXCL flag is available for opening files in exclusive mode. This is not locking: exclusiveness means here that if the file already exists, sysopen() fails.
That way it can keep retrying until it gets a file that didn't exist. Doing this with a -e check before using open would cause a race condition.
In reply to Re: Why does File::Temp use sysopen?
by revdiablo
in thread Why does File::Temp use sysopen?
by John M. Dlugosz
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |