Monitorear archivo usando inotify

Estoy usando inotify para monitorear un archivo local, por ejemplo "/ root / temp" usando

inotify_add_watch(fd, "/root/temp", mask).

Cuando se elimina este archivo, el programa será bloqueado porread(fd, buf, bufSize) función. Incluso si creo un nuevo archivo "/ root / temp", el programa sigue bloqueado por la función de lectura. Me pregunto si inotify puede detectar que se creó el archivo monitoreado y la función de lectura puede obtener algo de fd para que la lectura no se bloquee para siempre. Aquí está mi código:

uint32_t mask = IN_ALL_EVENTS;
int fd = inotify_init();
int wd = inotify_add_watch(fd, "/root/temp", mask);
char *buf = new char[1000];
int nbytes = read(fd, buf, 500);

Supervisé todos los eventos.

Respuestas a la pregunta(2)

Su respuesta a la pregunta