Я пытаюсь написать программу обмена сообщениями в Linux, используя очередь сообщений и pthread.
Программа, которую я написал, анализирует аргументы командной строки, чтобы получить идентификаторы очередей сообщений, такие как
user1) ./msg 4321 1234 // snd_key: 4321, rcv_key: 1234
user2) ./msg 1234 4321 // snd_key: 1234, rcv_key: 4321
и затем он создает две очереди сообщений: одну для отправки, а другую для получения сообщений. Затем он запускает поток для запуска sender (), передавая & snd_queue в качестве аргумента и получателя аналогичным образом. Затем я закончил программу, ожидая двух дочерних потоков, используя pthread_joing, а затем освободил две очереди сообщений.
Проблема в том, что я не вижу входящих сообщений с помощью двух терминалов. (Я вижу только сообщение, которое я печатаю). Кроме того, при написании команды "quit" (которая должна завершить программу) выдается ошибка сегментации (сбрасывается ядро).
Я не могу понять, в чем заключается ошибка в моей программе (нет ошибок компиляции)