Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //creare 2 procese tata fiu
- //procesul fiu sa afiseze mesaje continuu pana cand tatal primeste de la tastatura un mesaj
- //secventa din fiu se executa de catre un fir executat de fir
- #include <sys/types.h>
- #include <sys/wait.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <stdio.h>
- #include <string.h>
- #include <pthread.h>
- int main(int argc, char *argv[], char **env)
- {
- pid_t fiu;
- int pipe2[2];
- char* msgFiu = "Salut tata!";
- pipe(pipe2); //pipe fiu-tata
- fiu = fork();
- if(fiu == -1)
- {
- printf("Eroare fork! Nu s-a putut crea procesul fiu! \n");
- return -1;
- }//fiu eroare
- if (fiu == 0)//fiu
- {
- pthread_t thr1;
- //pthread_create(&thr1, NULL, (void *)&afis, NULL); //creez fir 1
- //sleep(1);
- while(1)
- {
- printf("FIUL a trimis mesajul ( %s ) catre tata!\n", msgFiu);
- sleep(2);
- printf("\n");
- }
- //trimit mesaj fiu catre tata
- write(pipe2[1], msgFiu, strlen(msgFiu)*sizeof(char));
- printf("\n");
- printf("Inchidere program...\n");
- exit(0);
- }
- //tata
- else
- {
- char *buffer;
- int ch;
- //alocare spatiu pt mesaj fiu
- buffer = malloc(strlen(msgFiu)*50);
- //citire mesaj fiu
- read(pipe2[0], buffer, strlen(msgFiu)*50);
- sleep(3);
- printf("TATAL a primit de la fiu mesajul: %s\n", buffer);
- printf("\n");
- sleep(5);
- }
- return 0;
- }//main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement