1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
Firlakuza [10]
4 years ago
5

CS3733: Homework/Practice 05 Suppose we would like to write a program called monitor which allows two other programs to communic

ate with each other through the monitor while inspecting the send messages. It can be executed as follows: > monitor progl prog2 To simplify the implementation, we assume that prog1 (e.g., 1s) will be printing some messages on the standard output while the prog2 (e.g, sort) reads from standard input and writes something into standard output. Our monitor can run these two programs as children and let the first one send messages to the second one through our monitor. So our monitor can inspect the incoming messages. After inspection, it sends the message to the next program as is. Again to simplify the implementation, we assume that our monitor simply looks for digits. When it detects a digit in the message, our monitor simply prints it on the stderr (this monitoring task can be complicated for other purposes) Logically these programs will have the following relationship prog1(child11Pie>[0Monitor (Paren)[1>Pipe2->[0Kprog2 (child2) You are asked to create the necessary pipes, child processes and connect them as explained in the above scenario. You can ignore most of the error checking to make your solution clear, but you need to close all unnecessary file descriptors and check what read-write return > monitor /bin/ls /usr/bin/sort #include #include #include #include int main (int argc, char argv int Pipel [2]; int Pipe2 [2] int chlpid, ch2pid, numread, numwrite; char buf if (chlpid.. 0){ /* child 1 7/ execl (argv[1], "progl", NULL) if (ch2pid0)/child 1 / execi (argv[2],"prog2", NULL)
Engineering
1 answer:
valina [46]4 years ago
8 0

Answer:

#include<stdio.h>

#include<stdlib.h>

#include<unistd.h>

#include<sys/types.h>

#include<string.h>

#include<pthread.h>

//#include<sys/wait.h>

int main(int argc, char** argv)

{

int fd1[2];

int fd2[2];

int fd3[2];

int fd4[2];

char message[] = "abcd";

char input_str[100];

pid_t p,q;

if (pipe(fd1)==-1)

{

 fprintf(stderr, "Pipe Failed" );

 return 1;

}

if (pipe(fd2)==-1)

{

 fprintf(stderr, "Pipe Failed" );

 return 1;

}

if (pipe(fd3)==-1)

{

 fprintf(stderr, "Pipe Failed" );

 return 1;

}

if (pipe(fd4)==-1)

{

 fprintf(stderr, "Pipe Failed" );

 return 1;

}

p = fork();

if (p < 0)

{

 fprintf(stderr, "fork Failed" );

return 1;

}

// child process-1

else if (p == 0)

{

 close(fd1[0]);// Close reading end of first pipe

 char concat_str[100];

 printf("\n\tEnter meaaage:"):

 scanf("%s",concat_str);

 write(fd1[1], concat_str, strlen(concat_str)+1);

 // Concatenate a fixed string with it

 int k = strlen(concat_str);

 int i;

 for (i=0; i<strlen(fixed_str); i++)

 {

  concat_str[k++] = fixed_str[i];

 }

 concat_str[k] = '\0';//string ends with '\0'

 // Close both writting ends

 close(fd1[1]);

 wait(NULL);

//.......................................................................

 close(fd2[1]);

 read(fd2[0], concat_str, 100);

 if(strcmp(concat_str,"invalid")==0)

 {

 printf("\n\tmessage not send");

 }

 else

 {

  printf("\n\tmessage send to prog_2(child_2).");

 }

 close(fd2[0]);//close reading end of pipe 2

 exit(0);

}

else

{

 close(fd1[1]);//Close writting end of first pipe

 char concat_str[100];

 read(fd1[0], concal_str, strlen(concat_str)+1);

 close(fd1[0]);

 close(fd2[0]);//Close writing end of second pipe

 if(/*check if msg is valid or not*/)

 {

  //if not then

  write(fd2[1], "invalid",sizeof(concat_str));

  return 0;

 }

 else

 {

  //if yes then

  write(fd2[1], "valid",sizeof(concat_str));

  close(fd2[1]);

  q=fork();//create chile process 2

  if(q>0)

  {

   close(fd3[0]);/*close read head offd3[] */

   write(fd3[1],concat_str,sizeof(concat_str);//write message by monitor(main process) using fd3[1]

   close(fd3[1]);

   wait(NULL);//wait till child_process_2 send ACK

   //...........................................................

   close(fd4[1]);

   read(fd4[0],concat_str,100);

   close(fd4[0]);

   if(sctcmp(concat_str,"ack")==0)

   {

    printf("Messageof child process_1 is received by child process_2");

   }

   else

   {

    printf("Messageof child process_1 is not received by child process_2");

   }

  }

  else

  {

   if(p<0)

   {

    printf("Chiile_Procrss_2 not cheated");

   }

   else

   {

     

    close(fd3[1]);//Close writing end of first pipe

    char concat_str[100];

    read(fd3[0], concal_str, strlen(concat_str)+1);

    close(fd3[0]);

    close(fd4[0]);//Close writing end of second pipe

    write(fd4[1], "ack",sizeof(concat_str));

     

   }

  }

 }

 close(fd2[1]);

}

}

You might be interested in
A hub a signal that refreshes the signal strength.
vekshin1

Answer:You are a network engineer. While moving a handheld wireless LAN device, you notice that the signal strength increases when the device is moved from a ...

Explanation:

7 0
3 years ago
A part made from annealed AISI 1018 steel undergoes a 20 percent cold-work operation. Obtain the yield strength and ultimate str
Charra [1.4K]

Answer:

yield strength before cold work = 370 MPa

yield strength after cold work = 437.87 MPa

ultimate strength before cold work = 440 MPa

ultimate strength after cold work = 550 MPa

Explanation:

given data

AISI 1018 steel

cold work factor W = 20% = 0.20

to find out

yield strength and ultimate strength before and after the cold-work operation

solution

we know the properties of AISI 1018 steel is

yield strength σy =  370 MPa

ultimate tensile strength σu = 440 MPa

strength coefficient K = 600 MPa

strain hardness n = 0.21

so true strain is here ∈ = ln\frac{1}{1-0.2} = 0.223

so

yield strength after cold is

yield strength = K \varepsilon ^n

yield strength =  600*0.223^{0.21)

yield strength after cold work = 437.87 MPa

and

ultimate strength after cold work is

ultimate strength = \frac{\sigma u}{1-W}

ultimate strength = \frac{440}{1-0.2}

ultimate strength after cold work = 550 MPa

8 0
3 years ago
A) For Well A, provide a cross-section sketch that shows (i) ground elevation, (ii) casing height, (iii) depth to
Ad libitum [116K]
Don’t go on that file will give a virus! Sorry just looking out and I don’t know how to comment!
7 0
3 years ago
The error in the trapezoidal rule is proportional to h^2 True b. False
Lynna [10]

Answer:

b) False

Explanation:

in trapezoidal rule the error is proportional to h^3 and the order of accuracy is proportional to h^3 .

Trapezoidal rule is numerical integration method .Trapezoidal rule is used to find the area of curves.In trapezoidal rule we finds the approximate value of integration.But the real value of integration will not differ to much from the value which finds by using trapezoidal rule.

4 0
3 years ago
If you could help it would mean alot.
scoundrel [369]

Answer:

D is the correct choice.

Explanation:

I'm assuming that this is probably a phase in the textbook or progarm you are studying, and this is just a matter of reading thoroughly.

Engineers usually benefit from catching a mistake, and would also benfit from keeping record of a misstep in order to remain clear of that mistake in the future.

Have a great day, and mark me brainliest if I am most helpful!

:)

8 0
3 years ago
Read 2 more answers
Other questions:
  • Two advantages of deforming steel at room temperature rather than at elevated temperatures are: (select 2 answers from the optio
    13·1 answer
  • 3) What kind of bridges direct their load along it's curve and into the
    12·1 answer
  • Liquid water is fed to a boiler at 24°C and 10 bar is converted at a constant pressure to saturated steam.
    12·1 answer
  • 6. Dr. Li boils water using a kettle with a 1.5 kW Nichrome (80% Ni and 20% Cr) heating element (resister heater). The diameter
    6·1 answer
  • What are the mechanical properties of a geotextile that are of most importance when using it as a separator in an unpaved road s
    12·1 answer
  • What are the advantages to a quality<br> saw?
    6·1 answer
  • Your friend has two substances A and B which are compressed liquid and superheated vapor respectively. Both are in rigid vessels
    15·1 answer
  • Explain wet and dry compression tests​
    6·1 answer
  • 3. (5%) you would like to physically separate different materials in a scrap recycling plant. describe at least one method that
    9·1 answer
  • To meet the needs of a client, what is best for an interior designer to do?
    9·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!