
21/04/2016, 03:09
|
| | Fecha de Ingreso: abril-2016
Mensajes: 1
Antigüedad: 9 años, 1 mes Puntos: 0 | |
Envío de mensajes Hola, estoy creando un programa en el que dos coches deben moverse sobre un mapa. Cada proceso debe enviar un mensaje de tipo 1 y quedarse bloqueado hasta recibir un mensaje de tipo 2. Solo consigo que me salga el primer coche. ¿Cómo podría solucionarlo? Gracias.
Código:
struct mensaje
{
long tipo;
int x, y;
};
int main()
{
struct mensaje m[2];
pid_t p[2];
for(i=0; i<2; i++)
{
if(p[i])
{
for(;;)
{
moverCoche(m, i);
}
}
}
return 0;
}
void moverCoche(struct mensaje *m, i)
{
m[i].tipo = 1;
m[i].x = 0;
m[i].y = 0;
if(msgsnd(buzon, &m[i], sizeof(m[i])-sizeof(long), IPC_NOWAIT) == -1)
{
exit(EXIT_FAILURE);
}
if(msgrcv(buzon, &m[i], sizeof(m[i]), 0, MSG_NOERROR) == -1)
{
exit(EXIT_FAILURE);
}
}
|