Advertisement
albert828

SCRl9

Dec 12th, 2018
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.11 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <unistd.h>
  3. #include <fcntl.h>
  4. #include <sys/types.h>
  5. #include <sys/stat.h>
  6.  
  7. #define FIFO "/tmp/potok_1"
  8.  
  9. int main(){
  10.     int potok_fd;
  11.     int deskryptor1, deskryptor2, deskryptor3;
  12.     int licznik;            //liczba odczytanych bajtów
  13.     char bufor[8];          //partie plików do przesyłania
  14.                     //  przez potok
  15.     char nazwa_pl[64];      // nazwa otwieranego pliku
  16.        
  17.     mkfifo(FIFO, 0666);
  18.     potok_fd = open(FIFO, O_WRONLY);
  19.    
  20.     printf("Podaj nazwę pierwszego pliku do odczytu:\t");
  21.     scanf("%s", nazwa_pl);
  22.     deskryptor1 = open(nazwa_pl, O_RDONLY);
  23.    
  24.     printf("Podaj nazwę drugiego pliku do odczytu:\t");
  25.     scanf("%s", nazwa_pl);
  26.     deskryptor2 = open(nazwa_pl, O_RDONLY);
  27.    
  28.     printf("Podaj nazwę trzeciego pliku do odczytu:\t");
  29.     scanf("%s", nazwa_pl);
  30.     deskryptor3 = open(nazwa_pl, O_RDONLY);
  31.    
  32.     while ((licznik=read(deskryptor1, bufor, 8)) > 0){
  33.         write(potok_fd, bufor, licznik);
  34.     }
  35.     while ((licznik=read(deskryptor2, bufor, 8)) > 0){
  36.         write(potok_fd, bufor, licznik);
  37.     }
  38.     while ((licznik=read(deskryptor3, bufor, 8)) > 0){
  39.         write(potok_fd, bufor, licznik);
  40.     }
  41.  
  42.     close(potok_fd);
  43.     return 0;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement