Usar una FIFO en linux para pasar un array

pako
02 de Diciembre del 2003
Estoy itentando comunicar dos procesos en linux atraves de una tuberia fifo (mkfifo). Lo que necesito comunicar es un array de 100 enteros (int tabla[100]) pero al pasarlos atraves de la fifo no llegan, da un numero extraño.

Supongo que mi procedimiento es erroneo, lo que hago es:

tubo = open("cola",O_WRONLY);
write(tubo,&tabla,100*sizeof(int));
Para el que escribe y:
tubo = open("cola",O_RDONLY);
read(tubo,&tabla,100*sizeof(int));

Pero no leo el dato correcto, ¿alguna idea?

Gracias

Martin Candurra
02 de Diciembre del 2003
Estas cometiendo un muy grave error, sobre todo porque no esta mal a nivel codigo C sino interpretacion.

El simple nombre de cualquier array/vector es la dirección de comienzo del mismo.
Es decir, bastaría con que escribieras "tabla".
El hecho de usar &tabla, esta generando una indirección que puede producir cualquier tipod e problemas, desde que no funcione hasta un SIGSEV.