ronyal

l3e1 niv

Nov 21st, 2017
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.20 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <fcntl.h>
  4. #include <unistd.h>
  5.  
  6. void Error(char* msg){printf("%s\n",msg);exit(1);}
  7.  
  8. int main(int argc, char* argv[]){
  9.     int file1, file2, answer, flag1, flag2, temp;
  10.     char buffer[1];
  11.    
  12.     if(argc < 3)
  13.         Error("Not enough files at argv[]");
  14.     file1 = open(argv[1], O_RDONLY, 4);
  15.     if(file1 == -1)
  16.         Error("Can't open the file in arg[1]");
  17.     file2 = open(argv[2], O_RDONLY, 4);
  18.     if(file2 == -1)
  19.         Error("Can't open the file in arg[2]");
  20.     answer = open(argv[3], O_RDWR | O_CREAT,0644);
  21.     if(answer == -1)
  22.         Error("Can't open the file in arg[3]");
  23.        
  24.     do{
  25.         do{
  26.             temp = read(file1,buffer,1);
  27.             if(temp == -1)
  28.                 Error("Can't read from file in arg[1]");
  29.             if(!temp)
  30.             {
  31.                 flag1=1;
  32.                 break;
  33.             }
  34.             temp = write(answer,buffer,1);
  35.             if(temp==-1)
  36.                 Error("Can't write to file in arg[3]");
  37.         }while(buffer[0]!='\n');
  38.         do{
  39.             temp = read(file2,buffer,1);
  40.             if(temp==-1)
  41.                 Error("Can't read from file in arg[2]");
  42.             if(!temp)
  43.             {
  44.                 flag2=1;
  45.                 break;
  46.             }
  47.             temp = write(answer,buffer,1);
  48.             if(temp==-1)
  49.                 Error("Can't write to file in arg[3]");
  50.         }while(buffer[0]!='\n');
  51.     }while(flag1!=1 && flag2!=1);
  52.     return 1;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment