这个代码写的有点乱,没有优化,不算是完全实现 格式不太好看
//实现diff命令
#include <stdio.h>
#include <string.h>
#define BUFFSIZE 10
int main(int agrv,char * agrc[])
{
FILE *fp=NULL;
FILE *fd=NULL;
char * ret=NULL,*ret1=NULL;
char buf[BUFFSIZE]={},buf1[BUFFSIZE]={};
char *fp1=NULL,*fd1=NULL;
int ch=0;
fp = fopen(agrc[1], "r");
if (NULL == fp)
return 1;
fd = fopen(agrc[2], "r");
if (NULL == fd)
{
fclose(fp);
return 1;
}
fp1=buf;
fd1=buf1;
while(1)
{
ret=fgets(buf,BUFFSIZE,fp);
if(ret==NULL)
{
if(feof(fp))
break;
else
{
fprintf(stderr,"fgets() error\n");
goto err1;
}
}
ret1=fgets(buf1,BUFFSIZE,fd);
if(ret==NULL)
{
if(feof(fd))
break;
else
{
fprintf(stderr,"fgets() error\n");
goto err1;
}
}
ch=strcmp(fp1,fd1);
if(ch!=0)
{
printf("%s:%s<\n",agrc[1],fp1);
printf("%s:%s<\n",agrc[2],fd1);
}
}
fclose(fp);
fp=NULL;
fclose(fd);
fd=NULL;
return 0;
err1:
fclose(fp);
fp=NULL;
fclose(fd);
fd=NULL;
return 1;
}