Я успешно создал очередь сообщений с помощью следующей команды:
msgIdHareTurtle = msgget(keyHareTurtle, 0644 | IPC_CREAT | O_NONBLOCK);
Теперь я хочу отправить очередь в какой-то другой процесс, который я использовал,
msgsnd(msgIdHareTurtle, (struct msgbuf *)&bufHareTurtle, sizeof(int), IPC_NOWAIT);
и япопробуйте получить его в другом процессе:
msgrcv(msgIdHareTurtle, (struct msgbuf *)&bufHareTurtle, sizeof(int), 0, IPC_NOWAIT);
моя структура bufHareTurtle имеет следующий тип:
typedef struct smsgbuf{
long mtype;
unsigned int position;
} smsgbuf;
Мой вопрос: отправка прошла успешно, и программа (оба процесса)тоже работает, но всякий раз, когда я отправляю целое число без знака, например, 2, Я ВСЕГДА ПОЛУЧАЮ ПОЛУЧЕННОЕ ЗНАЧЕНИЕ (В ПРОЦЕССЕ ПОСЛЕДНЕГО РАЗДЕЛА) КАК 0 ВСЕГДА.Может ли кто-нибудь сказать мне, что является ошибкой в этом коде или что может быть ошибкой в другом месте.