¿Tengo una cola de mensajes en c.como saber si la cola tiene mensajes o esta vacía? Gracias

A partir de un pseudocodigo tenemos que programar en c un programa cliente-servidor.

Cliente:

-Obtiene identificador de Q1
- Si Q1 no existe termina.
- msgsnd (Q1, pid) // Solicitud de alta
- sem_wait (es) // se bloquea si hay más de MAX_CLIENTES

La duda que tengo es como hacer si Q1 no existe termina.


Servidor:

Crea e inicializa semáforo: es = MAX_CLIENTES.
// Reserva memo para guardar los pids en un vector.
// Consideraremos que pueden esperar otros tantos clientes además de los activos
- vector_clientes = malloc( 2 * MAX_ CLIENTES * sizeof (pid_t) )
- while(1)
- Mientras haya mensajes en Q1 (NO SE COMO HACER ESTE PASO)
- msgrcv(Q1, NO_WAIT) // Un cliente ha solicitado ser dado de alta
- lee pid del nuevo cliente y lo anota en vector_clientes
- num_clientes ++
- msgrcv(Q2, WAIT) // Lee pid y cadena de Q2
- num_letras = strlen(cadena)
- msgsnd(Q3, pid, num_letras) //Envía num_letras a cliente con pid

Muchas gracias y un saludo.

Añade tu respuesta

Haz clic para o