Advertisement
Guest User

Untitled

a guest
May 29th, 2015
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. #include <sys/wait.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <unistd.h>
  5. #include <string.h>
  6. #define MAX_BUF 1024
  7.  
  8. int main(void) {
  9.  
  10. int pipefd[2]; // tablica która będzie przechowywać deskryptory plików
  11. pid_t cpid; // zmienna dla PID procesu
  12. char buf[MAX_BUF]; // tablica typu char dla bufora do odczytywania pliku
  13. char znak; // zmienna dla znaku
  14.  
  15. /* utworzenie potoku bez nazwy i od razu sprawdzenie czy nie wystąpił błąd
  16. zapisanie w tablicy pipefd deskryptorow do czytania i do pisania */
  17. if(pipe(pipefd) == -1) {
  18. exit(-1);
  19. }
  20.  
  21. // utworzenie procesu potomnego i zapisanie wartosci wynikowej do zmiennej cpid
  22. cpid = fork();
  23.  
  24. // sprawdzenie wartosci zmiennej cpid - czy jesteśmy w procesie macierzystym czy potomny
  25. if (cpid == 0) {
  26. // jestesmy w procesie potomnym
  27.  
  28. // zamknięcie pliku do pisania
  29. close(pipefd[1]);
  30.  
  31. // czytanie pliku ktory jest do odczytu i zapisanie danych do bufora
  32. read(pipefd[0], buf, MAX_BUF);
  33.  
  34. // wyswietlenie wiadomości ze zmiennej buf - bufora
  35. printf("Odebrałem wiadomość: %s\n", buf);
  36.  
  37. // zamknięcie pliku do odczytu
  38. close(pipefd[0]);
  39.  
  40. // zakończenie procesu potomnego
  41. exit(0);
  42. } else {
  43. // jestesmy w procesie macierzystym
  44. // zamknięcie pliku do odczytu
  45. close(pipefd[0]);
  46. // zapisanie wiadomości do pliku do pisania
  47. write(pipefd[1], "Luke, to ja jestem twoim ojcem!", strlen("Luke, to ja jestem twoim ojcem!"));
  48. // zamknięcie pliku do pisania
  49. close(pipefd[1]);
  50. // czekanie na zakończenie procesu potomnego
  51. wait(NULL);
  52. // zakończenie procesu macierzystego
  53. exit(0);
  54. }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement