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 seekdir (POSIX)

Entête à inclure

#include <dirent.h>

Fonction seekdir

void seekdir( DIR * dirp, long loc );

La fonction seekdir repositionne un flux de dossier sur une position précédemment obtenue avec telldir.

Paramètres

Valeur de retour

Cette fonction ne renvoie aucune valeur.

Le paramètre loc doit être une valeur produite par telldir pour le même flux de dossier. Il ne faut pas construire cette valeur manuellement.
Dans POSIX.1-2017, seekdir est associée à l'option XSI.

Exemple de code

L'exemple suivant sauvegarde une position et y revient avec seekdir.

 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;
}
Retour à une position de dossier

Sujets connexes

DIR *
readdir
rewinddir
telldir


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