¿El sistema operativo distribuye eventos en escritura al disco?

0

Me preguntaba si hay alguna manera de determinar cuándo un archivo acabados escribir en un directorio tanto en Windows como en Linux (obviamente, serán dos comandos diferentes).

Esto se debe principalmente a que, en lugar de sondear constantemente un directorio para buscar nuevos archivos no temporales, puedo configurar un programa para que simplemente escuche la finalización de una escritura en disco (parece mejor hacer las cosas de esa manera).

cwallenpoole
fuente

Respuestas:

2
  1. Los archivos no "escriben en directorios". Los datos se escriben en archivos y los archivos pueden estar (duros) vinculados a directorios. Pero el proceso de escritura de datos en el archivo no tiene nada que ver con el directorio; y el proceso de enlace duro es atómico y no tiene "final" que esperar.
  2. En Windows, la función que está buscando es FindFirstChangeNotification().
  3. Este es un tema de StackOverflow, no un SuperUser.
JdeBP
fuente
Fue un poco ambiguo. Por un lado, estoy buscando una forma de conectarse al kernel, y con frecuencia Linux te dará enlaces para hacer este tipo de cosas desde la línea de comandos. También puede haber una API de Windows para la misma cosa.
cwallenpoole
1

Para Linux, puedes echar un vistazo. en esta pregunta , la discusión fue en c ++ pero la idea (de las respuestas, no solo la elegida) sigue siendo buena. Básicamente, en linux puedes usar algunas banderas, o mirar el /proc/pid/fd proceso.

woliveirajr
fuente