Advertisement
Guest User

Untitled

a guest
May 24th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.87 KB | None | 0 0
  1. #include <unistd.h>
  2. #include <stdlib.h>
  3. #include <fcntl.h>
  4. #include <stdio.h>
  5. #include <string.h>
  6.  
  7. int fd1,fd2;
  8. void functieRecursiva();
  9. int main(int argc, char *argv[]) {
  10.   if(argc<3)
  11.   {perror("nu ai dat suficiente argumente"); exit(0);}
  12.  
  13.   if(-1==(fd1=open(argv[1],O_RDONLY))) {perror("eroare la fisier1"); exit(1);}
  14.   if(-1==(fd2=creat(argv[2],0660))) {perror("eroare la fisier2"); exit(2);}
  15.  
  16.   functieRecursiva();
  17.   close(fd1);
  18.   close(fd2);
  19.   return 0;
  20. }
  21.  
  22. void functieRecursiva()
  23. {
  24.   int r,w,i=0;
  25.   char c;
  26.   char* linie=malloc(100);
  27.   while(1)
  28.   {
  29.     r=read(fd1,&c,1);
  30.     if(r==-1) {perror("eroare la citire"); exit(3);}
  31.     if(r==0) break; //EOF
  32.  
  33.     linie[i]=c; i++;
  34.     if(c=='\n')
  35.     {
  36.       functieRecursiva();
  37.       w=write(fd2,linie,strlen(linie));
  38.       if(w==-1) {perror("eroare la scriere"); exit(4);}
  39.       break;
  40.     }
  41.   }
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement