Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/22: Рейтинг темы: голосов - 22, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 04.04.2012
Сообщений: 21

Обмен данными между процессами с использованием сообщений

22.04.2012, 16:38. Показов 4631. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, форумчане!
Помогите, пожалуйста, разобраться с данным видом взаимодействия процессов.
Например у меня есть две программы:
1-ая (сервер) выполняет команду ps и результаты ее выполнения передаются клиенту(2-ая программа)
2-ая (программа) выводит эти результаты на терминал.

Прошу написать кодик 1 и 2 проги и объяснить, где происходит передача, а где прием!

Заранее спасибо!

________________________________________ _
Видимо, нужно использовать модули:

C
1
2
3
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
Из Робачевского:
Для идентификации сообщений можно использовать ключи, которые генерируются в системе при вызове функции
C
1
key_t ftok(char *filename, char proj);

Если процессу необходимо создать новую очередь сообщений, то флаг должен содержать макрос IPC_CREAT, а также права на чтение и запись сообщений в очередь (0644). При нормальном завершении функция возвращает идентификатор очереди, в случае ошибки возвращается значение -1.
Посылка и прием сообщений организуются при вызове функций
C
1
int msgsnd(int msgid, struct msgbuf *msgp, int msgsz, int msgflg);
и
C
1
int msgrcv(int msgid, struct msgbuf *msgp, int msgsz, long msgtyp, int msgflg);
Первый параметр задает идентификатор очереди. Второй параметр является указателем на сообщение. Сообщение представляет собой структуру
struct msgbuf
C
1
2
3
4
{
long mtype; /* тип сообщения */
char mtext[];   /* указатель на буфер сообщения */
};
Параметр msgsz определяет длину сообщения. При значении параметра msgflg=0 процесс может блокироваться до тех пор пока функция не будет выполнена. Параметр msgtyp задает правила выбора сообщения из очереди. При нулевом значении параметра из очереди извлекается самое старое сообщение любого типа. Положительное значение определяет прием самого старого сообщения указанного типа.
Удаление очереди из системы производится при вызове функции
C
1
int msgctl(int msgid, int cmd, struct msgbuf *msgp);
при значении параметра cmd равном IPC_RMID.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.04.2012, 16:38
Ответы с готовыми решениями:

Обмен данными между процессами
Здравствуйте. Нужно создать три процесса.(fork()). У меня есть два варианта исхода событий: 1. - Родитель (р0) создает потомка(р1),...

Обмен данными между процессами, с использованием socket
обмен данными с использованием socket используя TPC- socket обмен данными между процессами доп:ip адрес в socket 127.0.0.1 входные...

Обмен данными между процессами (с использованием CreateFileMapping, MapViewOfFile, UnMapViewOfFile)
Помогите кто может и чем может, пожалуйста. Нужно разработать приложение, с помощью которого можно осуществить обмен данными между...

1
Alexesion
24.05.2014, 02:24
Добрый день.

Тема обмена процессами в Linuxe очень интересная. могу порекомендовать ссылку где что то подобное видел
Обмен данными между процессами OC Linux Debian
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.05.2014, 02:24
Помогаю со студенческими работами здесь

Обмен данными между процессами
Здравствуйте! Задача такая: есть скрипт на php который постоянно в памяти и при каждом запросе запускается скрипт пользователя. как...

Обмен данными между процессами
При создании дочернего процесса при помощи функции BOOL CreateProcess ( LPCTSTR lpApplicationName, // имя...

Обмен данными между процессами
хотелось бы узнать в какую сторону копать сей вопрос (Обмен данными между процессами) надо чтобы одна программа передала другой,...

Обмен данными между процессами
Добрый день! Нужно распараллелить программу. Суть в следующем: должны быть два процесса(разные функции), идущих параллельно, и второй...

Обмен данными между процессами
Уважаемое сообщество, подскажите, пожалуйста, с решением такой проблемы: у меня два процесса c# и с++, и мне необходимо передавать массив...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru