Part A-3

 

Run the two programs simultaneously on two terminals.

Pgm-3

#include <stdio.h>

#include <string.h>

#include <fcntl.h>

#include <sys/stat.h>

#include <sys/types.h>

#include <unistd.h>

  

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("User2: %s\n", arr1);

        close(fd);

    }

    return 0;

}

 

 

 

#include <stdio.h>

#include <string.h>

#include <fcntl.h>

#include <sys/stat.h>

#include <sys/types.h>

#include <unistd.h>

  

int main()

{

    int fd1;

  

    // FIFO file path

    char * myfifo = "/tmp/myfifo";

  

    // Creating the named file(FIFO)

    // mkfifo(<pathname>,<permission>)

    mkfifo(myfifo, 0666);

  

    char str1[80], str2[80];

    while (1)

    {

        // First open in read only and read

        fd1 = open(myfifo,O_RDONLY);

        read(fd1, str1, 80);

  

        // Print the read string and close

        printf("User1: %s\n", str1);

        close(fd1);

  

        // Now open in write mode and write

        // string taken from user.

        fd1 = open(myfifo,O_WRONLY);

        fgets(str2, 80, stdin);

        write(fd1, str2, strlen(str2)+1);

        close(fd1);

    }

    return 0;

}

 

Comments

Popular posts from this blog

ಅರಗಿನರಮನೆ

Part B-1