This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: cvs is broken/cygwin-bug in mkdir()?
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/