Mail Archives: cygwin/2011/08/01/10:13:53
On Mon, Aug 01, 2011 at 02:24:25PM +0200, Corinna Vinschen wrote:
>>
>> However, at a first glance I doubt this is a Cygwin bug. Consider:
>>
>> - bash 4.1.10 returns "execut"
>> - /bin/test from coreustils returns "execut"
>> - My highly professional and streamlined testcase returns the correct
>> result:
>>
>> #include <stdio.h>
>> #include <unistd.h>
>> #include <errno.h>
>> #include <string.h>
>>
>> void
>> my_access (const char *file, int flag, const char *fname, int effective)
>> {
>> int ret = effective ? access (file, flag) : eaccess (file, flag);
>> printf ("%saccess (%s, %s) = %d",
>> effective ? "e" : " ", file, fname, ret);
>> if (ret)
>> printf (" <%s>", strerror (errno));
>> fputc ('\n', stdout);
>> }
>>
>> int
>> main (int argc, char**argv)
>> {
>> int eff;
>>
>> if (argc > 1)
>> for (eff = 0; eff < 2; ++eff)
>> {
>> my_access (argv[1], F_OK, "F_OK", eff);
>> my_access (argv[1], R_OK, "R_OK", eff);
>> my_access (argv[1], W_OK, "W_OK", eff);
>> my_access (argv[1], X_OK, "X_OK", eff);
>> }
>> return 0;
>> }
>>
>> $ gcc -g -o access access.c
>> $ ./access /tmp/xxx/folder
>> access (/tmp/xxx/folder, F_OK) = 0
>> access (/tmp/xxx/folder, R_OK) = 0
>> access (/tmp/xxx/folder, W_OK) = 0
>> access (/tmp/xxx/folder, X_OK) = 0
>> eaccess (/tmp/xxx/folder, F_OK) = 0
>> eaccess (/tmp/xxx/folder, R_OK) = 0
>> eaccess (/tmp/xxx/folder, W_OK) = 0
>> eaccess (/tmp/xxx/folder, X_OK) = 0
>>
>>
Right, and me too. But if i replace in your testcase:
eaccess(file, flag) with
faccessat(0 /* not used if file is absolute */, file, flag, AT_EACCESS)
(and also "e" : " " with " " : "f" for clarity)
(and i have to include <fcntl.h>)
i obtain:
% ./corinna++ /tmp/xxx/folder
faccess (/tmp/xxx/folder, F_OK) = 0
faccess (/tmp/xxx/folder, R_OK) = 0
faccess (/tmp/xxx/folder, W_OK) = 0
faccess (/tmp/xxx/folder, X_OK) = -1 <Permission denied>
access (/tmp/xxx/folder, F_OK) = 0
access (/tmp/xxx/folder, R_OK) = 0
access (/tmp/xxx/folder, W_OK) = 0
access (/tmp/xxx/folder, X_OK) = 0
%
(faccess is what i find in bash-4.2/lib/sh/eaccess.c)
Is this under control?
>> Corinna
Denis Excoffier.
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
- Raw text -