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