John mencionó las dos rutas principales que puede seguir para ver archivos en sistemas Unix/Linux: notificación y sondeo.
La notificación se produce cuando el propio sistema (generalmente el kernel) desencadena un mensaje a las aplicaciones registradas cada vez que se accede o se escribe en el archivo. Este enfoque requiere un sistema compatible y es posible que no esté disponible en máquinas más antiguas.
La implementación principal de la notificación en Linux es inotify, que está integrada en los núcleos 2.6.13 y posteriores y puede ser parchada en 2.6.12 y versiones anteriores. Hay un nice IBM guide en el uso de inotify, así como un set of tools and C library básico para acceder a inotify.
El sondeo es cuando su programa comprueba repetidamente un archivo a intervalos para ver si se modificó algo sobre ese archivo: su tamaño, la última modificación, el propietario, etc.
No hay una implementación estándar de esto, ya que está escrito a nivel de programa en lugar de sistema, aunque la llamada al sistema poll existe y parece hacer algo útil para este propósito (la página man dice que es similar a select , y espera que un evento esté disponible en un descriptor de archivo). También puede tomar el enfoque más básico con stat y hacer sus propias comprobaciones.
gracias por la explicación –
Dudo que la encuesta() ayude. Parece que no entendiste lo que hace poll(). A menos que quieras usarlo * con * inotify. – Thomas
Para aclarar: poll() solo puede decirle cosas como "si leo() desde este archivo ahora, ¿bloqueará eso?" o "Espere al máximo 3 segundos o hasta que pueda leer (sin el bloqueo de lectura()) de al menos uno de estos descriptores de archivo". – Thomas