打开文件时的一个奇怪问题,大家帮忙看看!
我在程序中打开一个文件时使用相对路径时,打开错误,错误提示是:目录或文件不存在.使用绝对路径时就能正常打开. 
 但后面我做了特测试程序使用相对路径又能正常打开文件.很奇怪,麻烦大家帮忙看看. 
 程序: 
 绝对路径:/opt/dictionary/dict/data/对应数据文件 
 相对路径:data/对应数据文件 
 FILE*   vDOpenFile(int   iDictName) 
 { 
 	FILE   *pFile; 
 	char   szFileName[100]; 
 	memset(szFileName,0,sizeof(szFileName)); 
 	switch(iDictName) 
 	{    
 	case   EEM:   strcpy(szFileName, "data/EEM.dict ");   break; 
 	case   ME:   strcpy(szFileName, "data/ME.dict ");   break; 
 	case   MM:   strcpy(szFileName, "data/MM.dict ");   break; 
 	} 
 	printf( "filename@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:%s\n ",szFileName); 
 	if((pFile=fopen(szFileName, "rb "))==NULL) 
 	{    
 		printf( "open   the   file   :%s   error\n ",szFileName); 
 		perror( "fopen   error "); 
 		return   NULL; 
 	} 
 	else 
 	{ 
 		return   pFile; 
 	} 
 }   
 测试程序: 
 #include    <stdio.h>  
 #include    <string.h>  
 #include    <stdlib.h>    
 int   main() 
 { 
 	FILE   *dataFile; 
 	char   filename[30]; 
 	printf( "%d\n ",sizeof(filename)); 
 	memset(filename,0,sizeof(filename)); 
 	strcpy(filename, "data/EEM.dict "); 
 	if((dataFile=fopen(filename, "rb "))==NULL){ 
 		printf( "open   error!\n "); 
 	} 
 	fclose(dataFile);  	 
 } 
------解决方案--------------------相对路径根你执行程序时候的当前路径有关系。 
 实际的文件路径=当前路径+程序里的相对路径   
 如, 
 cd /opt/dictionary/dict 
 后,执行你的程序,data/对应数据文件  
 的相对路径就OK了。   
 若, 
 cd /opt/dictionary 
 后,执行你的程序, 
 那相对路径就变成 dict/data/对应数据文件 
 了。 
------解决方案--------------------VC的执行目录是你工程文件的目录