bug-coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


From: Pádraig Brady
Subject: bug#11816: sort -o: error comes late if opening the outfile fails
Date: Sat, 30 Jun 2012 14:11:08 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:6.0) Gecko/20110816 Thunderbird/6.0

On 06/30/2012 12:53 PM, Paul Eggert wrote:
> 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.
> 

The race would be unlikely and
only fallback to the existing operation
of slower failure.

Though I suppose opening the file is a
more direct check and would also obviate the
need to check for writeability of the containing dir
in the case of a non existent file.

OK I'm leaning towards an early open so.

As for cleaning up an empty created file,
`sort` already has an exit_cleanup() function,
so we can unlink there.

I'm not sure it's worth tuning the in==out case TBH.

cheers,
Pádraig.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]