Робота з чергами повідомлень
Автор: trinawilena • Июнь 18, 2020 • Лабораторная работа • 554 Слов (3 Страниц) • 279 Просмотры
Міністерство освіти та науки України
Вінницький національний технічний університет
Факультет інформаційних технологій та комп’ютерної інженерії
Кафедра комп’ютерних наук
Звіт лабораторної роботи №5
Робота з чергами повідомлень
Виконав студент групи 2КН-19Б
Коваль Катерина.
Перевірив:
Іванчук Я.В.
Вінниця 2020
Мета роботи: Розробити програму яка буде створювати чергу повідомлень та читати їх.
Лістинг програми
#include
#include
#include
#include
#include
#include
#include
#define MAX_SEND_SIZE 80
struct mymsgbuf {
long mtype;
char mtext[MAX_SEND_SIZE];
};
void send_message(int qid, struct mymsgbuf *qbuf, long type, char *text);
void read_message(int qid, struct mymsgbuf *qbuf, long type);
void remove_queue(int qid);
void change_queue_mode(int qid, char *mode);
void usage(void);
int main(int argc, char *argv[])
{
key_t key;
int msgqueue_id;
struct mymsgbuf qbuf;
if (argc == 1)
{
usage();
exit(1);
}
key = ftok(".", 'm');
if ((msgqueue_id = msgget(key, IPC_CREAT | 0660)) == -1) {
perror("msgget");
exit(1);
}
switch(tolower(argv[1][0]))
{
case 's':
send_message(msgqueue_id, (struct mymsgbuf *)&qbuf, atol(argv[2]), argv[3]);
break;
case 'r':
read_message(msgqueue_id, &qbuf, atol(argv[2]));
break;
case 'd':
remove_queue(msgqueue_id);
break;
case 'm':
change_queue_mode(msgqueue_id, argv[2]);
...