Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <sys/types.h>
- #include <sys/wait.h>
- #include <signal.h>
- #include <stdio.h>
- #include <string.h>
- #include <unistd.h>
- #include <fcntl.h>
- #include <stdlib.h>
- int main()
- {
- int fdTC[2], fdTS[2];
- if(pipe(fdTC)== -1)
- {
- perror("Could not create pipe\n");
- exit(1);
- }
- if(pipe(fdTS) == -1)
- {
- close(fdTC[0]);
- close(fdTC[1]);
- perror("Could not create pipe\n");
- exit(1);
- }
- int ch;
- while(1)
- {
- ch= fork();
- if(ch == 0)
- {
- printf("Enter the number of integers: ");
- int n;
- scanf("%d", &n);
- write(fdTS[1], &n, sizeof(int));
- int i=0, c;
- for(i=0;i<n;i++)
- {
- scanf("%d", &c);
- write(fdTS[1], &c, sizeof(int));
- }
- read(fdTC[0], &c, sizeof(int));
- read(fdTC[0], &i, sizeof(int));
- printf("Max: %d Min: %d\n", c, i);
- exit(0);
- }
- else if(ch > 0)
- {
- int n;
- read(fdTS[0], &n, sizeof(int));
- int i=0, max=-100000, min=100000;
- for(i=0;i<n;i++)
- {
- int c;
- read(fdTS[0], &c, sizeof(int));
- if(c > max)
- max = c;
- if(c < min)
- min = c;
- }
- write(fdTC[1], &max, sizeof(int));
- write(fdTC[1], &min, sizeof(int));
- }
- else
- perror("Could not create child\n");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement