C/Visual C - Funcion select para ficheros

 
Vista:

Funcion select para ficheros

Publicado por AlvaroLuna (19 intervenciones) el 08/02/2007 16:46:57
Buenas a todos.
Quiero comprobar si se ha escrito en un fichero, para en base a eso ejecutar ciertas acciones.
Para ello abro el fichero con la función open, en modo lectura. Luego con un select(que segun he leido en el man lo que hace es trabajar con descriptores de ficheros aparte de sockets) me pongo a la espera de que se modifique el archivo. Pero la llamada select se ejecuta instantaneamente y no espera a que se escriba en el fichero.
fd=open(------)
Pongo los FD_ZERO y los FD_SET con cuidado
y cuando pongo valor_select=select(fd+1, &fd_leer,NULL, NULL, NULL)
no se bloquea hasta que se escribe en el fichero apuntado por fd sino que sigue su camino el programa.

A ver si alguien puede orientarme(si hay otra alternativa mejor que select cuentemela, estoy abierto a opciones..)

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Funcion select para ficheros

Publicado por Tom (619 intervenciones) el 09/02/2007 10:46:49
Es difícil hacer eso con archivos.
Si lees el man de select verás que: "Those listed in readfds will be watched to see if characters become available for reading (more precisely, to see if a read will not block - in particular, a file descriptor is also ready on end-of-file), ...".
O sea que un fichero está siempre disponible para lectura ya que, o hay datos para leer, o está en EOF con lo que read devuelve EOF, pero no se bloquea.

El manual lo deja aún más claro cuando dice: "File descriptors associated with regular files shall always select true for ready to read, ready to write, and error conditions."

Quizás puedas conseguir algo parecido a lo que quieres (que no sé qué es) utilizando fifos en lugar de ficheros "normales".
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Funcion select para ficheros

Publicado por AlvaroLuna (19 intervenciones) el 09/02/2007 13:13:41
Gracias Tom, le daré vueltas a la cabeza a ver si lo puedo hacer de otra forma, ya que veo que con select está complicado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar