Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

The following code is for the code file namedpipe_p1.c . // This process writes first, then reads #include #include #include #include #include #include int main()

The following code is for the code file namedpipe_p1.c.

// This process writes first, then reads

#include

#include

#include

#include

#include

#include

int main()

{

int fd;

// FIFO file path

char * myfifo = "/tmp/myfifo";

// Creating the named file(FIFO)

// mkfifo(, )

mkfifo(myfifo, 0666);

char arr1[80], arr2[80];

// Open FIFO for write only

fd = open(myfifo, O_WRONLY);

// Take an input arr2ing from user.

// 80 is maximum length

printf("your message: ");

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

close(fd);

return 0;

}

The following code is for another code file namedpipe_p2.c.

// This program reads first, then writes

#include

#include

#include

#include

#include

#include

int main()

{

int fd1;

// FIFO file path

char * myfifo = "/tmp/myfifo";

// Creating the named file(FIFO)

// mkfifo(,)

mkfifo(myfifo, 0666);

char str1[80], str2[80];

// First open in read only and read

fd1 = open(myfifo,O_RDONLY);

read(fd1, str1, 80);

// Print the read string and close

printf("Received: %s ", str1);

close(fd1);

// Now open in write mode and write

// string taken from user.

fd1 = open(myfifo,O_WRONLY);

printf("your message: ");

fgets(str2, 80, stdin);

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

close(fd1);

return 0;

}

Compile the two files and run the files in two SSH terminals respectively.

Hint: gcc sourcecode.c -o outputfile.out

What is the output you have observed? Please paste the screenshots.

Add a piece of code to each file so that (1) each process shows its pid using printf and (2) then sends its pid to another side using the named pipe. Hint: use getpid() as what you did in previous labs.

What is your modified source code for namedpipe_p1.c only?

What are the results on the two SSH terminal? Please paste the screenshots?

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

SQL For Data Science Data Cleaning Wrangling And Analytics With Relational Databases

Authors: Antonio Badia

1st Edition

3030575918, 978-3030575915

More Books

Students also viewed these Databases questions