Para los principiantes, ¿qué significa la función readdir_r?
La función readdir_r() es una versión reentrante de la función readdir(). Lee la siguiente entrada del directorio del flujo del directorio dirp y la devuelve a través de la entrada del búfer asignada por la persona que llama. (Consulte la sección "Notas" para obtener información sobre la asignación de buffers). El puntero a la entrada devuelta se coloca en *resultado si la secuencia del directorio llega al final, *resultado se establece en NULL;
Valor de retorno
En caso de éxito, readdir() devuelve un puntero a la estructura directa. (Esta estructura está asignada estáticamente, no intente liberarla(3)). Si se alcanza la posición final, se devuelve NULL y errno permanece sin cambios. Si se produce un error, se devuelve NULL y se establece errno con precaución.
La función readdir_r() devuelve 0 en caso de éxito y un código de error positivo (enumerado en el resumen "Errores" a continuación) en caso de error. Si se llega al final del directorio, readdir_r() devuelve 0 y establece *resultado en NULL.
Error
EBADF