Ver Mensaje Individual
  #4 (permalink)  
Antiguo 06/06/2016, 08:16
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: mq_send, ERRNO 97. Msg too long.

De acuerdo al estándar, el tipo int puede ocupar 2 bytes o 4 bytes, luego asumir que siempre va a ocupar 4 bytes puede ser perjudicial para tus intereses.

Por otro lado también te digo que dudo mucho que en un pc el compilador genere ints de 2 bytes.

Hasta donde llego viendo documentación por internet, la forma de crear la cola en el cliente (el que envia) debería ser algo tal que:

Código C:
Ver original
  1. queueDescriptor = mq_open(QUEUE_NAME, O_WRONLY);

Lo cual difiere ligeramente de tu código:

Código C:
Ver original
  1. struct mq_attr attributes;
  2.  
  3. attributes.mq_flags = 0;  /* Only this can be modified at mq_open */
  4. attributes.mq_maxmsg = 10;
  5. attributes.mq_msgsize = MSG_SIZE;
  6. attributes.mq_curmsgs = 0;
  7.  
  8. queueDescriptor = mq_open(QUEUE_NAME, O_CREAT |O_WRONLY, 0777, &attributes);

No se si los tiros irán por ahí, ya que no tengo un linux a mano y en casa tampoco podré probarlo en una temporadita porque mi placa base murió durante el fin de semana con solo 3 añitos de vida :(

Da la impresión de que puedes estar creando la cola dos veces. Piensa que uno de los extremos es el que crea la cola y el otro extremo simplemente se une a dicha cola.

Un saludo.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.