C语言程序在涉及路径的代码中,主要会涉及到windows和linux这两大平台的差异。

在windows平台下,其路径的主要形式为:
H:\MyDrivers\backup

在linux平台下,其路径主要形式为: /home/MyDrivers/backup

在windows平台中,其也接收linux风格的路径。但是在linux中传入windows风格路径会出现问题。我的解决办法就是通用使用linux风格的路径,这样有利于跨平台移植。

void linux_style_path(char * path)  
{  
   	int path_len = 0;  
    	int i = 0;
	char chr;  
    	path_len = strlen(path);  
	for(i = 0;i<path_len ;i++)  
	{  
		chr = path[i];  
	  	if(chr == "\")  
		{  
			path[i] = '/';  
		}  
	}    
} 

其中有点需要特别说明的是: 在windows平台中传入路径,需要加转义符号
char path[] = "H:\MyDrivers\backup";
FILE* fp = fopen(path,"w");
这样肯定会出错,因为实际传入的路径是:H:MyDriversbackup
所以,在windows平台中需要传入:
char path[] = "H:\MyDrivers\backup";
FILE* fp = fopen(path,"w");
如果转成linux风格路径就完全没得问题哈!