35 lines
734 B
C
35 lines
734 B
C
#include <stdio.h>
|
|
#include <unistd.h>
|
|
#include <fcntl.h>
|
|
#include <string.h>
|
|
#include <sys/wait.h>
|
|
|
|
int main() {
|
|
int p[2];
|
|
char str[] = "Hello this is the parent.";
|
|
|
|
// This creates a pipe. p[0] is the reading end,
|
|
// p[1] is the writing end.
|
|
|
|
if(pipe(p) < 0)
|
|
perror("lab2p2e: ");
|
|
|
|
// We will send a message from father to child
|
|
if(fork() != 0) {
|
|
close(p[0]); // The the end we are not using.
|
|
write(p[1], str, strlen(str));
|
|
close(p[1]);
|
|
wait(NULL);
|
|
}
|
|
else
|
|
{
|
|
char buffer[128];
|
|
|
|
close(p[1]); // Close the writing end
|
|
read(p[0], buffer, 127);
|
|
printf("Child got the message \"%s\"\n", buffer);
|
|
close(p[0]);
|
|
}
|
|
}
|
|
|