Mail Archives: cygwin/2005/10/12/08:54:56
On Oct 12 09:47, Corinna Vinschen wrote:
> On Oct 11 21:20, Eric Blake wrote:
> > $ df -T c: j:
> > Filesystem Type 1K-blocks Used Available Use% Mounted on
> > c: system,fixed 29286460 20471796 8814664 70% /cygdrive/c
> > j: system,remote 6260992 4508800 1752192 73% /cygdrive/j
> > $ mkdir -p j:/dir
> > $ mkdir -p c:/dir
> > mkdir: cannot create directory `c:': Permission denied
> >
> > I am suspecting a cygwin bug here. mkdir("c:") should fail with EEXIST,
> > not EACCES. 5.90 exposes this bug, where 5.3.0 did not, because the
> > algorithm for mkdir -p was changed to attempt mkdir() first instead of stat().
This is a problem in the new mkdir. When trying to call CreateDirectory
on a local root directory, the error returned by Windows is
ERROR_ACCESS_DENIED, not ERROR_ALREADY_EXISTS. Consequentially the error
is converted to EACCES, not EEXIST. This is an error condition which mkdir
should handle gracefully. I have serious problems to change this in
Cygwin since we can't find out why ERROR_ACCESS_DENIED has been returned
without jumping through loops.
> > Continuing the example, I also find it odd that from WinXP, I get EBADRQC
> > instead of the more familiar ENOENT when removing a nonexistant directory
> > on a remote FAT drive:
Trying to remove a non-existant directory on a 9x share apparently
returns ERROR_INVALID_FUNCTION instead of ERROR_FILE_NOT_FOUND. I've
kludged this to be converted accordingly. Nothing new here. We're
used to convert 9x error messages into useful error messages...
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Project Co-Leader cygwin AT cygwin DOT com
Red Hat, Inc.
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
- Raw text -