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.
49 lines
877 B
49 lines
877 B
#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;
|
|
}
|
|
|
|
|