Bonjour à tous.
J'ai réussi à faire une fonction qui enregistre le contenu d'un répertoire dans un tableau. Cette fonction utilise readdir() . J'aimerait à la place utiliser readdir_r() . Sauf qu'en lisant les pages de man sur le net, je n'arrive pas à comprendre ce qu'elle fait exactement.
Voici son prototype :
Pour sa valeur de retour, c'est facile, c'est zéro en cas de succès, et différent de zéro en cas d'échec.
Code : Sélectionner tout - Visualiser dans une fenêtre à part int readdir_r(DIR *dir, struct dirent *entry, struct dirent **result);
1) Pour le premier argument (dir), je me demande si il est modifié. Est ce que c'est la structure de type DIR qui contient la position courante ? (et donc est-ce que c'est dir qui est incrémenté à chaque appel ?)
2) Pour le deuxième argument (entry), est ce que la fonction créé une structure de type "dirent" avec un malloc, remplit ses champs avec les valeurs de l'entrée courante du répertoire, et enfin fait pointer entry sur cette structure ?
3) Pour le troisième argument (result) , il pointe vers entry.
D'abord est-ce que ce que je dit est bon ? Ensuite , je ne voit pas à quoi sert result. Surement que la fonction en a besoin (mais pour quel usage ?) et qu'il ne sert à rien pour nous (on se fiche de savoir ce qu'il vaut, à part pour détecter la fin du répertoire).
Merci pour votre temps.
Partager