[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: errno from open(<directory>) ?
From: |
Tim Rühsen |
Subject: |
Re: errno from open(<directory>) ? |
Date: |
Mon, 22 May 2017 15:04:48 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 |
On 05/22/2017 02:04 PM, Gisle Vanem wrote:
> Tim Rühsen wrote:
>
>> Built on MinGW / Win32 the same open sets errno to EACCES.
>>
>>
>> We currently use a work-around like
>> + int rc = open(pathname, flags, mode);
>> +#ifdef _WIN32
>> + if (rc < 0 && errno == EACCES) {
>> + DWORD attrs = GetFileAttributes(pathname);
>> + if (attrs & FILE_ATTRIBUTE_DIRECTORY)
>> + errno = EISDIR;
>> + }
>> +#endif
>
> MSDN says:
> If the function fails, the return value is INVALID_FILE_ATTRIBUTES.
>
> which is ((DWORD)-1). So the test should better be:
>
> if (attr != INVALID_FILE_ATTRIBUTES && (attrs &
> FILE_ATTRIBUTE_DIRECTORY))
> errno = EISDIR;
>
Thanks for your correction. I'll amend the code for Wget2 respectively.
With Best Regards, Tim
signature.asc
Description: OpenPGP digital signature