Описание тега msgrcv

Системный вызов, используемый для получения сообщений из очереди сообщений в Linux. Точно так же Msgsnd() - это соответствующий системный вызов, используемый для отправки сообщений. Используйте этот тег для вопросов, связанных с системным вызовом msgrcv()
2 ответа

Ошибка в msgrcv(): получение данных через очередь сообщений в C

Я отправляю сообщение, используя механизм очереди сообщений в C linux. Но есть некоторая проблема с функцией msgrcv. Это показывает ошибку как неверный аргумент. Пожалуйста, проверьте это. //msgrcv.c #include"msgbuf.h" int main() { int msqid; key_t …
25 мар '14 в 06:51
1 ответ

Очередь сообщений не будет читать сообщения перечислимого типа

Я пытаюсь использовать очередь сообщений для отправки и получения сообщений между процессами отца и сына. Я использовал enum для установки типов сообщений для msgrcv, но, похоже, эта информация игнорируется: enum children { e_father_child1 = 1, e_fa…
18 дек '16 в 20:32
1 ответ

Читать содержимое динамической длины, используя msgrcv

Я использую функцию msgrcv для чтения сообщений из очереди сообщений. Он отлично работает, когда я читаю данные известной длины. В некоторых случаях длина моего сообщения является переменной. В таком Как я могу выделить только требующийся объем памя…
22 май '12 в 12:31
1 ответ

msgrcv получает пустые сообщения

У меня есть две программы, которые отправляют и получают сообщения друг от друга через очереди IPC. Однако иногда функция msgrcv будет получать пустое сообщение вместо получения того, что было фактически отправлено через очередь. Я закомментировал и…
04 май '11 в 17:17
1 ответ

C Linux (Ubuntu) - msgsnd() и msgrcv() errno 22 (EINVAL)

Я пробую свои силы в IPC (передача сообщений) некоторое время, и я не могу решить эту проблему. errno 22 (EINVAL) для msgget () представляется неверным идентификатором очереди сообщений, неположительным типом сообщения или неверным размером сообщени…
25 ноя '15 в 19:41
1 ответ

Очередь сообщений IPC. системный вызов msgrcv. Система V. Как выйти из цикла

У меня есть очередь сообщений, из которой я получаю сообщения в цикле. Проблема в том, что я не знаю, как выйти из цикла. msgrcv возвращает тип size_t, поэтому он продолжает работать. Какое значение я должен сравнить возвращаемое значение, чтобы я м…
05 ноя '09 в 18:41
3 ответа

Как упорядочены сообщения внутри очереди IPC

Мне нужно знать, если эти сообщения в очереди IPC заказаны. На практике мне нужно знать, если при вызове функции msgrvc я получаю первое сообщение, поступившее в очередь, или выбранное сообщение является случайным. Теперь я задаю этот вопрос, потому…
08 июл '13 в 14:06
1 ответ

Реализация таймера WatchDog

Мне нужно реализовать таймер, который проверяет условия каждые 35 секунд. Моя программа использует схемы IPC для обмена информацией между клиентским и серверным процессами. Проблема в том, что я запускаю функцию msgrcv() в цикле, который приостанавл…
17 мар '16 в 00:01
1 ответ

Ошибка функции msgrcv() в дочернем процессе

В настоящее время я пытаюсь отправить сообщения между главным процессом и его дочерними процессами. Я использую передачу сообщений для принудительного выполнения критической секции, но моя функция получения сообщений в дочерних процессах не работает…
16 окт '16 в 21:05
1 ответ

Проверьте msqid, чтобы увидеть, есть ли сообщение без ожидания или msgrcv

Спасибо всем за проверку. Я хотел знать, есть ли способ проверить очередь сообщений (msqid) и посмотреть, есть ли какие-либо сообщения в очереди. Если нет, я бы хотел продолжить. Единственный способ, который мне удалось найти в Интернете, - это испо…
29 апр '14 в 17:53
3 ответа

Передача сообщений в C/ Печать массива char из структуры в C

Я создал эту программу, чтобы передать сообщение родительскому процессу. Я хочу, чтобы родительский процесс распечатал полученное сообщение. Я не уверен, что это проблема чтения массива char или передачи сообщений, так как я новичок в программирован…
30 сен '11 в 01:48
2 ответа

Не могу отправить целое число от одного процесса другому, используя POSIX в C

Я использую язык C с компилятором GCC в Linux. У меня есть два процесса, и я хочу передать целое число из одного процесса в другой, т.е. из внешнего процесса в центральный процесс, и тогда центральный процесс должен его распечатать. Но мой код не ра…
26 апр '14 в 06:22
1 ответ

Запрос в MSG_EXCEPT флаг в очереди сообщений

Кто-нибудь может сказать мне, как использовать флаг MSG_EXCEPT в функции "msgrcv" в очереди сообщений с примером? Я пытаюсь сделать это, но он выдаст мне ошибку вроде: MSG_EXCEPT undeclared Я ввел все файлы заголовков для функции "msgrcv". пожалуйст…
18 май '14 в 12:20
1 ответ

Msgrcv не получает сообщения, однако они были отправлены правильно

Я пишу основную серверную программу, которая должна получать два типа сообщений от клиентов (первое сообщение относится к типу 1, а второе - к типу 2). Кажется, что он не видит сообщения от клиентов, которые были отправлены должным образом (msgsnd н…
20 дек '18 в 10:43
1 ответ

Очередь сообщений UNIX msgrcv не смогла получить сообщение

Дорогие друзья, есть идеи, почему msgrcv получает пустой буфер? Вот код: enter code here #include <sys/msg.h> #include <unistd.h> #include <sys/types.h> #include <stdio.h> #include <string.h> typedef struct mymsg { long…
14 мар '11 в 16:29
1 ответ

Спрашивает о msgrcv, не работает для приема сообщений согласно приоритету

это мой код, и в последней части msgrecv не принимает сообщения из очереди с правильным приоритетом, например: 10 наиболее важно принять, затем набрать =20, затем набрать =30 ... это моя цель - принять сообщения таким образом... кто-нибудь может пок…
24 июл '16 в 23:18
0 ответов

Получение сообщений SysV с помощью fork()

Я пытаюсь получить серию сообщений, которые я отправил с помощью msgsnd в серии fork(). Я могу сказать, что сообщения отправлены нормально, но их получение было проблемой. Вот проблемная часть кода, используя три сообщения в качестве примера: for(j=…
07 авг '13 в 23:50
2 ответа

Очередь сообщений. msgsend msgrcv. Системные вызовы System V IPC в C (Linux)

Привет, я работаю с общей памятью, где разные процессы читают и записывают данные. Я использую очередь сообщений для хранения сообщений об изменении данных между операциями чтения и записи. /* struct that defines a message */ struct msgbuf{ long mty…
05 ноя '09 в 05:05
1 ответ

Программа приема сообщений печатает только каждое другое сообщение

Я реализовал две программы из раздела 7.6 http://beej.us/guide/bgipc/output/html/multipage/mq.html. Я расширил его так, что есть две принимающие программы, и какая из них зависит от типа сообщения. Проблема возникает в принимающей программе B и C. П…
17 мар '16 в 10:36
0 ответов

Ошибка во время связи в очереди сообщений

Я сделал очередь сообщений, но когда помощник отправил сообщение своему клиенту, клиент получил неправильный номер: -1081388352. Это для каждого номера, который я отправляю. Там нет ошибки во время msgget и даже durign msgcrv или msgsnd. Код для отп…
10 фев '14 в 09:37