cvs is broken/cygwin-bug in mkdir()?
Christopher Faylor
cgf-no-personal-reply-please@cygwin.com
Sat Feb 4 07:27:00 GMT 2006
On Fri, Feb 03, 2006 at 11:44:22PM -0500, Igor Peshansky wrote:
>Yes. Looks like Cygwin is too hasty in assigning the error number: Linux
>only returns ENOENT if the directory doesn't already exist, but Cygwin
>will always return it for a trailing dot argument. The same with rmdir,
>where it would always return EINVAL, even if the directory doesn't exist
>(in which case Linux returns ENOENT). FWIW, POSIX only specifies an
>action for rmdir() on a trailing dot (EINVAL).
rmdir doesn't always return EINVAL.
Test program:
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
int
main (int argc, char **argv)
{
printf ("%d = rmdir (\"%s\")\n", rmdir (*++argv), *argv);
perror ("rmdir");
}
Run it:
bash-3.00$ ./rmdir qwer
-1 = rmdir ("qwer")
rmdir: No such file or directory
bash-3.00$ ./rmdir qwer/.
-1 = rmdir ("qwer/.")
rmdir: Invalid argument
cgf
--
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/
More information about the Cygwin
mailing list