Linux下C语言处理fopen(path,“wb”)的路径转换问题
在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个'/'的原因是为了拼接后面的文件名,这只是路径。www.linuxidc.com可根据自己的情况进行处理
- path[j++] = '/';
- path[j] = '\0';
- strcpy(saveframeURI,path);
- }
通过以上代码,解决了路径的格式问题。但是fopen(path,"wb")的返回值还是NULL,最后分析是文件/home/dong/test的权限问题,通过 chmod 777 /hom/dong/test 修改权限,解决了问题。
相关推荐
IT之家 2020-03-11
graseed 2020-10-28
zbkyumlei 2020-10-12
SXIAOYI 2020-09-16
jinhao 2020-09-07
impress 2020-08-26
liuqipao 2020-07-07
淡风wisdon大大 2020-06-06
yoohsummer 2020-06-01
chenjia00 2020-05-29
baike 2020-05-19
扭来不叫牛奶 2020-05-08
hxmilyy 2020-05-11
黎豆子 2020-05-07
xiongweiwei00 2020-04-29
Cypress 2020-04-25
冰蝶 2020-04-20