Participer au site avec un Tip
Rechercher
 

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 :

Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé

Fonction telldir (POSIX)

Entête à inclure

#include <dirent.h>

Fonction telldir

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.

Paramètres

Valeur de retour

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.

Dans POSIX.1-2017, telldir est associée à l'option XSI.

Exemple de code

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;
}
Mémorisation d'une position de dossier

Sujets connexes

DIR *
readdir
rewinddir
seekdir


Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé