Modify the following code to use only ONE message queue for one server and multiple clients Computer Science

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

Modify the following code to use only ONE message queue for one server and multiple clients

Computer Science

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <sys/msg.h>
struct my_msg_st {
};
long int my_msg_type;
char some_text [BUFSIZ];
int main()
{
int running = 1;
int msgid;
struct my_msg_st some_data;
long int msg_to_receive = 0;
msgid msgget ((key_t) 1234, 0666 | IPC_CREAT);
}
if (msgid == -1) {
fprintf(stderr, "msgget failed with error: %d\n", errno);
exit (EXIT_FAILURE);
Transcribed Image Text:#include <stdlib.h> #include <stdio.h> #include <string.h> #include <errno.h> #include <unistd.h> #include <sys/msg.h> struct my_msg_st { }; long int my_msg_type; char some_text [BUFSIZ]; int main() { int running = 1; int msgid; struct my_msg_st some_data; long int msg_to_receive = 0; msgid msgget ((key_t) 1234, 0666 | IPC_CREAT); } if (msgid == -1) { fprintf(stderr, "msgget failed with error: %d\n", errno); exit (EXIT_FAILURE);
while (running) {
if (msgrcv (msgid, (void *)&some_data, BUFSIZ,
msg_to_receive, 0) == -1) {
fprintf(stderr, "msgrcv failed with error: %d\n", errno);
}
}
printf("You wrote: %s", some_data.some_text);
if (strncmp(some_data. some_text, "end", 3) == 0) {
= 0;
}
exit (EXIT_FAILURE);
}
}
running
if (msgctl (msgid, IPC_RMID, 0) == -1) {
fprintf(stderr, "msgctl (IPC_RMID) failed\n");
exit (EXIT_FAILURE);
exit (EXIT_SUCCESS) ;
Transcribed Image Text:while (running) { if (msgrcv (msgid, (void *)&some_data, BUFSIZ, msg_to_receive, 0) == -1) { fprintf(stderr, "msgrcv failed with error: %d\n", errno); } } printf("You wrote: %s", some_data.some_text); if (strncmp(some_data. some_text, "end", 3) == 0) { = 0; } exit (EXIT_FAILURE); } } running if (msgctl (msgid, IPC_RMID, 0) == -1) { fprintf(stderr, "msgctl (IPC_RMID) failed\n"); exit (EXIT_FAILURE); exit (EXIT_SUCCESS) ;
Expert Solution
steps

Step by step

Solved in 3 steps with 3 images

Blurred answer
Knowledge Booster
Hyperlinks
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education