possible bug in stat() -- not working with special characters on 64 bit systems

Leon Vanderploeg leonv@vaultnow.com
Tue Oct 25 13:07:00 GMT 2011

I have been fighting a problem with a compiled C program and seem to have
narrowed it down.  When file names contain special characters such as the n
with the tilde above it (ñ), stat() works fine on 32 bit machines, but fails
on 64 bit machines (both windows 7 and server 2008 R2).  

At the end of the this email is source code of a small test program to
demonstrate the issue.  Of course, the C:\ directory must contain the
Mañana.doc and Manana.doc files.  I can provide a compiled version if
needed.  The program is compiled on Cygwin version 1.5.25, GCC version

On 32 bit machines, stat() succeeds for both files, on 64 bit machines, the
stat() of Manana.doc  succeeds but Mañana.doc fails.

Can someone please test and confirm if this is, indeed, a bug?

Leon V

*************start of source code****************************
#include <string.h>
#include <unistd.h>
#include <stdio.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
#include <winbase.h>
#include <sys/types.h>
#include <fcntl.h>
#include <dirent.h>
#include <curl/curl.h>
#include <pthread.h>

#include <sys/wait.h>
#include <cygwin/wait.h>

int main(int argc, char **argv)
	char filename[100];
	int rtn;
	strcpy(filename, "C:\\Mañana.doc");
	printf("filename is ***%s***\n",filename);
	struct stat fileStat;
	rtn = stat(filename,&fileStat);
	printf("stat return code is: %d\n", rtn);
	strcpy(filename, "C:\\Manana.doc");
	printf("filename is ***%s***\n",filename);
	rtn = stat(filename,&fileStat);
	printf("stat return code is: %d\n", rtn);

*************end of source code*****************************

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

More information about the Cygwin mailing list