在使用C语言字符串时候的安全处理问题
字符指针在赋值的时候一定要记得只copy值,做好安全处理,不然会出很多玄学问题。
char* fileset[100] = {};
//信息的缓存
char* inforset[100] = {};
void ls(char filename[])
{
int i = 0;
DIR* dir_ptr; //the directory
struct dirent* direntp; //each entry
//设置标签
set_flag(oper);
// show_flags();
if((dir_ptr = opendir(filename)) == NULL)
{
fprintf(stderr,"ls1: cannot open%s \n",filename);
}
else
{
while((direntp = readdir(dir_ptr)) != NULL)
{
//给它多分配一个换行符的位置
fileset[i] = malloc(strlen(direntp->d_name)+1);
strcpy(fileset[i],direntp->d_name);
i++;
}
closedir(dir_ptr);
}
// //显示目前文件集合中的文件名
//第一步筛选,排除一些东西
filter(fileset,filterf);
// show_set(fileset);
order(orderf,fileset);
// printf("hello \n");
get_infor(inforset,fileset,formatf,extraf);
show_set(inforset);
// puts(inforset[99]);
}