c语言处理fopen(path,"wb")的路径转换问题
在linux下面, path 的指定格式为两个斜杠 例如 //home//dong//test 但是往往传递过来的参数为 /home/dong/test则 我们需要转换 字符串 如下代码可以解决这个问题:
·
在linux下面, path 的指定格式为两个斜杠 例如 //home//dong//test 但是往往传递过来的参数为 /home/dong/test
则 我们需要转换 字符串 如下代码可以解决这个问题:
void pathFormatOperation(char *saveframeURI)//saveframeURI保存转换后的字符串,所以申请的空间要大一些
{
char path[255];
int i = 0;
int j = 0;
i = 0;
j = 0;
while(saveframeURI[i] != '\0')
{
if(saveframeURI[i] == '/')
{
path[j++] = '/';
path[j++] = '/';
}
else
{
path[j++] = saveframeURI[i];
}
i++;
}
path[j++] = '/';//最后加上2个'/'的原因是为了拼接后面的文件名,这只是路径。可根据自己的情况进行处理
path[j++] = '/';
path[j] = '\0';
strcpy(saveframeURI,path);
}
通过以上代码,解决了路径的格式问题。但是fopen(path,"wb")的返回值还是NULL,最后分析是文件/home/dong/test的权限问题,通过 chmod 777 /hom/dong/test 修改权限,解决了问题。
更多推荐
已为社区贡献1条内容
所有评论(0)