Me imagino que te refieres al hacer un read sobre un fifo, no? Corrigeme si me equivoco.
Nunca he usado un read no bloqueante sobre una tuberia con nombre, pero puede que la opción O_NONBLOCK tengas que utilizarla a la hora de abrir la tuberia.
"int open(char *fifo, int flag)" en el parámetro flag.
Si de esta forma no te funciona, prueba a utilizar una cola de mensajes para sincronizar los procesos, porque éstas si que te permiten un read (en este caso, receive) no bloqueante usando el flag O_NONBLOCK a la hora de crear dicha cola.
Mucha suerte, y si no tienes algo claro, pregunta.
Salu2.
> ¿Como puedo hacer en C que una llamada a read() no sea bloqueante?
> En el man veo esto, pero no se donde o como lo tengo que definir.
>
> ERRORS
>EINTR The call was interrupted by a signal before any
> data was read.
>
>EAGAIN Non-blocking I/O has been selected using O_NONBLOCK
> and no data was immediately available for reading.
>
> ¿Como puedo usar el O_NONBLOCK? ¿donde tengo que ponerlo?
>
>
> --
> To UNSUBSCRIBE, email to [EMAIL PROTECTED]
> with a subject of "unsubscribe". Trouble? Contact
> [EMAIL PROTECTED]
>
>
>
Usuario Registrado de GNU/Linux
#209025.
"Siempre hay que tratar ser el mejor,
pero nunca creerselo". (Juan Manuel Fangio)
__E_v_e_r_y_d_a_y_._c_o_m___
Vive la emoción del Mundial en tu móvil y recibe en tiempo real los tantos de tus equipos favoritos. Ej.: Envía EVESP al 5075 y recibe todos los goles de la Selección Española. Visita everyday.com para ver todos los códigos y estar a la última.