Detectar acceso a carpetas en Objective C o C ++ en OSX (como el comando fs_usage)

Estoy trabajando en un escáner de virus en tiempo real en OSX. El comando de línea de comando de OSXfs_usage se puede usar para determinar el acceso a la carpeta de la siguiente manera (y solo se puede ejecutar como usuario root):

fs_usage -w -f pathname | grep '/Users/.*/Documents\|/Users/.*/Downloads' | grep mds

Luego, solo busque una línea que contenga la frase:

    open    

(4 espacios al frente, 4 espacios después)

Esto se emitirá cuando se descargue un archivo en la carpeta Documentos o Descargas. Luego puede hacer un hash de archivo (sha256 es lo mejor) y usar una base de datos SQLite para verificar si ya ha escaneado ese archivo o no. Si no, puede escanear ese archivo.

De acuerdo, eso es interesante, pero ¿cuál es la forma C ++ u Objective C para determinar el acceso a la carpeta de esa manera? Quiero decir, seguramente elfs_usage El comando está utilizando algún tipo de API para eso, ¿verdad?

Una pista que tengo creo que esAPI de eventos del sistema de archivos de Apple. Sin embargo, simplemente no lo entiendo de los ejemplos dados para mi escenario particular.

Respuestas a la pregunta(1)

Su respuesta a la pregunta