You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
877 B
50 lines
877 B
4 years ago
|
#include <stdio.h>
|
||
|
#include <string.h>
|
||
|
#include <fcntl.h>
|
||
|
#include <sys/stat.h>
|
||
|
#include <sys/types.h>
|
||
|
#include <unistd.h>
|
||
|
|
||
|
// C program to implement one side of FIFO
|
||
|
// This side writes first, then reads
|
||
|
|
||
|
int main()
|
||
|
{
|
||
|
int fd;
|
||
|
|
||
|
// FIFO file path
|
||
|
char * myfifo = "/tmp/myfifo";
|
||
|
|
||
|
// Creating the named file(FIFO)
|
||
|
// mkfifo(<pathname>, <permission>)
|
||
|
mkfifo(myfifo, 0666);
|
||
|
|
||
|
char arr1[80], arr2[80];
|
||
|
while (1)
|
||
|
{
|
||
|
// Open FIFO for write only
|
||
|
fd = open(myfifo, O_WRONLY);
|
||
|
|
||
|
// Take an input arr2ing from user.
|
||
|
// 80 is maximum length
|
||
|
fgets(arr2, 80, stdin);
|
||
|
|
||
|
// Write the input arr2ing on FIFO
|
||
|
// and close it
|
||
|
write(fd, arr2, strlen(arr2)+1);
|
||
|
close(fd);
|
||
|
|
||
|
// Open FIFO for Read only
|
||
|
fd = open(myfifo, O_RDONLY);
|
||
|
|
||
|
// Read from FIFO
|
||
|
read(fd, arr1, sizeof(arr1));
|
||
|
|
||
|
// Print the read message
|
||
|
printf("User 2: %s\n", arr1);
|
||
|
close(fd);
|
||
|
}
|
||
|
return 0;
|
||
|
}
|
||
|
|