Subject: Re: bug#11816: sort -o: error comes late if opening the outfile fails

From: Paul Eggert <[email-masked]>
Date: Sat, 30 Jun 2012 06:53:06 -0500

On 06/29/2012 07:55 AM, Pádraig Brady wrote:
> Also the in==out case, you'd like to check for write-ability too.
>
> Both cases could be handled I think with something like:
>
> if (access (outfile, W_OK) != 0 && errno != ENOENT)
>   error (...);

Wouldn't it be better to actually open the output file,
but not truncate it?  We can then truncate it just before
actually writing to the file.  That would avoid a race
condition or two.

In the in==out case, we could tune this by opening
the file just once, with O_RDWR.  If the file is not
a regular file, we might have to give up and open such
a file twice, but that should be rare.