- 论坛徽章:
- 0
|
在Linux环境下编译的这个程序。功能是把某个目录里边文件名大写的字母,变成小写的。
请各位大侠看看,这个程序有什么问题?为什么rename没有执行?而且,每次运行a.out的时候,总有Segmentation fault
哪里溢出了?
#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[])
{
const char oldfile[32]={NULL},newfile[32]={NULL};
const char dirname[64]={};
int i;
DIR *dp;
struct dirent *fn;
dp=opendir("/home/gzhy/123" ;
do
{
fn=readdir(dp);
strcpy(oldfile,fn->;d_name);
strcpy(newfile,fn->;d_name);
i=0;
while(newfile)
{
if(newfile>;64 && newfile<91)
newfile=newfile+32;
i++;
}
rename(oldfile,newfile);
}while(fn);
closedir(dp);
} |
|