#include <dirent.h>
long telldir( DIR * dirp );
La fonction telldir renvoie une position représentant l'emplacement courant dans un flux de dossier. Cette valeur est prévue pour être réutilisée avec seekdir.
La fonction renvoie une position de type long. Cette valeur ne doit pas être interprétée directement : elle sert uniquement de marqueur pour seekdir.
telldir est associée à l'option XSI.Le programme suivant mémorise une position, lit une entrée, puis revient à la position sauvegardée.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
#define _XOPEN_SOURCE 700 #include <dirent.h> #include <stdio.h> #include <stdlib.h> int main(void) { DIR * directory = opendir("."); if (directory == NULL) { perror("opendir"); return EXIT_FAILURE; } readdir(directory); long position = telldir(directory); struct dirent * entry = readdir(directory); if (entry != NULL) { printf("Avant seekdir : %s\n", entry->d_name); } seekdir(directory, position); entry = readdir(directory); if (entry != NULL) { printf("Après seekdir : %s\n", entry->d_name); } closedir(directory); return EXIT_SUCCESS; } |
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :