Esas son las funciones de cola de mensajes 'System V IPC'. Trabajarán para usted, pero son bastante pesados. Están estandarizados por POSIX. POSIX también proporciona un conjunto de funciones más moderno, mq_close
, mq_getattr
, mq_notify
, mq_open
, mq_receive
, mq_send
, mq_setattr
, mq_unlink
que podría ser mejor para usted (por ejemplo una vergüenza de la riqueza). Sin embargo, deberá verificar cuál, si es que lo está, está instalado en sus plataformas de destino de forma predeterminada. Especialmente en un sistema integrado, podría ser que tenga que configurarlos o incluso instalarlos porque no están allí por defecto (y lo mismo podría decirse de la memoria compartida y los semáforos).
La principal ventaja de cualquiera de los conjuntos de servicios de mensajes es que son previamente depurados (probablemente) y por lo tanto tienen problemas de concurrencia ya resueltos, mientras que si lo van a hacer con memoria compartida y semáforos, ' Tengo mucho trabajo por hacer para llegar al mismo nivel de funcionalidad.
Por lo tanto, (re) use cuando pueda. Si es una opción, use uno de los dos sistemas de cola de mensajes en lugar de reinventar el suyo. Si finalmente encuentra que hay un cuello de botella de rendimiento o algo similar, entonces puede investigar cómo escribir sus propias alternativas, pero hasta entonces — ¡reutilícelo!
transmisión de mensajes y memoria compartida son diferentes paradigmas de programación. De hecho, el paso de mensajes es probablemente más simple de codificar. –