#include #define GNU_SOURCE #include #include #define gettext(file)\ getline(&line,0,file);\ if(i=strlen(line)-1,line[i]=='\n')line[i]=(char)0; int main(int argc,char **argv){ FILE *file1,*file2,*tempfile; char *line=NULL; int i; if(argc<3)printf("usage: replace file1 file2\n"); file1=fopen(argv[1],"r"); file2=fopen(argv[2],"r"); tempfile=fopen("tempfile","w"); while(!feof(file1)){ gettext(file1); if(!strcmp(line,"BB")){ free(line);line=NULL; if(feof(file2)){ printf("unexpexted EOF in %s\n",argv[2]); return 2; } gettext(file2); } fputs(line,tempfile); putc('\n',tempfile); free(line);line=NULL; } fclose(file1); fclose(file2); fclose(tempfile); remove(argv[1]); rename("tempfile",argv[1]); return 0; }