並不是很有效率就是了,只是希望比 shell 快一點
當 diffPath 檔案中的項目不在 basePath 的檔案裡,就會 print 出來。
#include <stdio.h>
#include <errno.h>
#include <string.h>
#define BUFFER_SIZE 300 /*char buffer size*/
int main(int argc, char *argv[]) {
if(argc !=3 ){
fprintf(stderr,"%s [diffPath] [basePath]\n",argv[0]); return 1;
}
FILE *diffFile, *baseFile;
char diffChars[BUFFER_SIZE], baseChars[BUFFER_SIZE];
if((diffFile=fopen(argv[1], "r")) == NULL){
fprintf(stderr,"can't open diff file\n"); return 1;
}
if((baseFile=fopen(argv[2], "r")) == NULL){
fprintf(stderr,"can't open base file\n"); return 1;
}
while(!feof(diffFile)){
/* read diff item */
fscanf(diffFile,"%s\n",diffChars);
int isFind=0;
/* find item exist */
rewind(baseFile);
while(!feof(baseFile)){
fscanf(baseFile,"%s\n",baseChars);
if(strcmp(diffChars,baseChars) == 0){ isFind=1; break; }
}
/* not find itme */
if(!isFind){
printf("%s\n",diffChars);
}
}
fclose(diffFile);
fclose(baseFile);
return 0;
}
0 回應:
張貼留言