- 论坛徽章:
- 0
|
rename为什么不执行?
按照楼上的意见修改了代码,没有Segmentation fault了。但是,rename还是不行,我查了返回值,每次都是错误。
#include <sys/types.h>;
#include <unistd.h>;
#include <stdio.h>;
#include <string.h>;
#include <ctype.h>;
#include <dirent.h>;
#include <linux/unistd.h>;
int main(int argc,char *argv[])
{
char oldfile[64]={},newfile[64]={};
int i;
DIR *dp;
struct dirent *fn;
memset(oldfile, 0, sizeof(oldfile));
memset(newfile, 0, sizeof(newfile));
dp=opendir("/home/gzhy/123" ;
do
{
fn=readdir(dp);
if(!fn) break;
strcpy(oldfile,fn->;d_name);
strcpy(newfile,fn->;d_name);
i=0;
while(newfile)
{
if(newfile>;64 && newfile<91)
newfile=newfile+32;
i++;
}
printf("%s\t%s\n",oldfile,newfile);
if(strcmp(newfile,oldfile))
{
if(rename(oldfile,newfile)==-1)
printf("error in rename file\n" ;
}
}while(fn);
closedir(dp);
}
运行结果:
[gzhy@BB4251X gzhy]$ ./a.out
. .
.. ..
1.JPG 1.jpg
error in rename file
2.JPG 2.jpg
error in rename file
3.JPG 3.jpg
error in rename file
4.jpg 4.jpg
5.jpg 5.jpg |
|