#include #include #include #include #include int fd1,fd2; void functieRecursiva(); int main(int argc, char *argv[]) { if(argc<3) {perror("nu ai dat suficiente argumente"); exit(0);} if(-1==(fd1=open(argv[1],O_RDONLY))) {perror("eroare la fisier1"); exit(1);} if(-1==(fd2=creat(argv[2],0660))) {perror("eroare la fisier2"); exit(2);} functieRecursiva(); close(fd1); close(fd2); return 0; } void functieRecursiva() { int r,w,i=0; char c; char* linie=malloc(100); while(1) { r=read(fd1,&c,1); if(r==-1) {perror("eroare la citire"); exit(3);} if(r==0) break; //EOF linie[i]=c; i++; if(c=='\n') { functieRecursiva(); w=write(fd2,linie,strlen(linie)); if(w==-1) {perror("eroare la scriere"); exit(4);} break; } } }