300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > linux目录下多个文件行数比对函数 关键字遍历文件 linux命令写入C函数

linux目录下多个文件行数比对函数 关键字遍历文件 linux命令写入C函数

时间:2020-09-21 01:49:16

相关推荐

linux目录下多个文件行数比对函数 关键字遍历文件 linux命令写入C函数

人,一定要有勇气和踏实的态度面对改变和选择!开发,零经验起步! 文件行数比对函数: 输入参数:接口文件绝对路径,日期(格式YYYYMMDD:0716) 根据路径和日期,分别获取这add、del、upd这3个文件的行数,然后与周秀读取rec0716.chk中文件的条数做对比。 如果相同返回 RET_SUCCESS,如果不相同返回RET_FAIL,并打印出以下信息。 任务分析: 1.如果输入为目录路径,需要遍历读取目录下的每个文件,提取“日期”关键字打开并读取文件。考虑了链表、打开目录等函数、建立文件结构体、strcmp对比名称时利用输入参数作为变量···然而。。。真正的解决思路确实这样的: 正是因为目录下文件名是很规范的 rec+0915+num+add这样的形式,可以考虑 1.目录下全部文件名读取,赋值给文件路径变量。 2.调用单个文件处理函数,由输入的参数将全路径拼接,然后利用循环体,将linux命令结果输出至C语言函数。 开发提示1: char FILE_PATH_1[200]; memset(FILE_PATH_1, 0x00, sizeof(FILE_PATH_1)); strcpy(FILE_PATH_1,"/settle/stl_cdr/inter123");//此目录是AIX小机上的一个目录 开发提示2: (Check_LineCount(&FILE_PATH_1···//目录放到这个变量 开发提示3: char add_file[200]; sprintf(add_file, "%s/rec%s.num.add", FILE_PATH_1,filedate);//重点读一下,全路径拼接 *add_chk=Get_File_Count(&add_file); 开发提示4: //求取目录下单独文件的行数 函数Get_File_Count int Get_File_Count(char *FILE_PATH_All) { int num_chk=0; char cmd[200]; FILE *fp;sprintf(cmd, "cat %s | wc -l", FILE_PATH_All); if((fp = popen(cmd, "r")) == NULL) return -1; fscanf(fp, "%d", &num_chk); pclose(fp);//popen和pclose我并不了解,但是这样做就ok ··· 5.编写makefile文件,执行make工具 文件行数比对函数:建立check_400_file.pc文件,编写Check_LineCount()函数,处理目录下所有文件的行数,输入参数为目录路径,通过sprintf()拼接全路径,调用Get_File_Count()处理单个文件行数,采用了"cat %s | wc -l"命令。获取后,主函数继续调用之前chk文件的函数,进行结果判断。 测试结果:能够获取目录下包含特定日期关键字的文件,求取行数并输出至主函数。调用findcount函数也正常输出至主函数,进行判断。 编后记:在开发中遇到问题和想法,如果有导师,一定交流下,可以指引自己少发牢骚!与其处于纠结,不如请教他人! 谢谢关注!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。