Это функции очереди сообщений «System V IPC».Они будут работать на вас, но они довольно тяжелые.Они стандартизированы POSIX.POSIX также предоставляет более современный набор функций, mq_close
, mq_getattr
, mq_notify
, mq_open
, mq_receive
, mq_send
, mq_setattr
, mq_unlink
, которые могут быть лучше для вас (такие каксмущение богатства).Однако вам нужно будет проверить, какой из них, если он установлен, установлен на ваших целевых платформах по умолчанию.В частности, во встроенной системе может потребоваться их настройка или даже их установка, поскольку по умолчанию их нет (и то же самое можно сказать и о разделяемой памяти и семафорах).
Основное преимущество любого из наборов сообщений состоит в том, что они предварительно отлажены (возможно) и, следовательно, уже имеют проблемы с параллелизмом - в то время как если вы собираетесь сделать это для себя с общей памятью и семафорами, у вас есть многоработать, чтобы достичь того же уровня функциональности.
Итак, (пере) использовать, когда вы можете.Если это вариант, используйте одну из двух систем очереди сообщений, а не изобретайте свою собственную.Если вы в конечном итоге обнаружите, что существует узкое место в производительности или что-то подобное, вы можете заняться написанием собственных альтернатив, но до тех пор - использовать повторно!