Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <unistd.h>
- #include <fcntl.h>
- #include <string.h>
- #include <stdio.h>
- int main(void)
- {
- /* Proces 1 - pobiera dane z STDIN (deskryptor 0) i zapisuje w pliku */
- if(fork())
- {
- int des;
- int n;
- char buf[20];
- char buf1[20];
- des = open( "/tmp/file.txt", O_CREAT | O_RDWR | O_APPEND, 0666 );
- while(((n = read(0, buf, sizeof(buf))) > 0))
- {
- //printf("Wczytano: %d\n",n);
- write( des, buf, strlen( buf ) );
- sprintf(buf1,"%x",*buf);
- //write(1,buf1,sizeof(buf1));
- printf("Otrzymałem: %s\n",buf);
- write(des,buf,sizeof(buf));
- bzero(buf,sizeof(buf1));
- close(des);
- }
- /* Proces 2 - odczytuje z pliku i przekazuje dane za pomocą FIFO do procesu 3 */
- if(fork())
- {
- while(((n = read(des, buf, sizeof(buf))) > 0))
- {
- bzero(buf,sizeof(buf));
- des=open("/tmp/file.txt",O_RDONLY);
- read(des,buf,sizeof(buf1));
- //sprintf(buf1,"%x",*buf);
- printf("Otrzymałem: %s\n",buf);
- //write(2,buf1,3);
- close(des);
- }
- /* Proces 3 - wypisuje otrzymane dane na STDOUT (deskryptor 1) */
- if(fork())
- {
- ;
- }
- }
- close(des);
- }
- sleep(100);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment