bug-coreutils
[Top][All Lists]
Advanced

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

bug#41001: mkdir: cannot create directory ‘test’: File exists


From: Jonny Grant
Subject: bug#41001: mkdir: cannot create directory ‘test’: File exists
Date: Sat, 2 May 2020 14:26:35 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0



On 01/05/2020 21:32, Paul Eggert wrote:
On 5/1/20 1:21 PM, Jonny Grant wrote:
yes, the fix pretty trivial for mkdir as you highlight EISDIR:
stat(), S_ISDIR(sb.st_mode), and set errno to EISDIR or output strerror(EISDIR)

That would introduce a race condition, and wouldn't behave correctly if some
other process changes the destination from a regular file to a directory between
the time we call mkdir and the time that we call stat.

Paul,

If developers have race conditions in their shell scripts - mkdir error string in the message after the colon in the output saying file/directory is the least of the developers' problems.

mkdir() returning EEXIST only indicates the pathname exists.

Maybe call stat() before calling mkdir() to check nothing there. It's more a question of doing something appropriate.

Personally I doubt POSIX will ever be updated to have more errno errors that distinguish between files and directories for ENOENT and EEXIST due to people's fears about compatibility when APIs are updated.

Cheers, Jonny





reply via email to

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