Subject: possible bug in stat() -- not working with special characters on 64 bit systems
From: "Leon Vanderploeg" <[email-masked]>
To: <[email-masked]>
Cc: <[email-masked]>
Date: Tue, 25 Oct 2011 07:06:53 -0600
List-Id: <cygwin.cygwin.com>

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
3.4.4.

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?

Thanks,
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);
	return(0);
}

*************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