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

Entête à inclure

#include <dirent.h>

Fonction alphasort

int alphasort( const struct dirent ** d1, const struct dirent ** d2 );

La fonction alphasort est une fonction de comparaison prévue pour être passée à scandir. Elle trie les entrées de dossier à partir du champ d_name.

Paramètres

Valeur de retour

La fonction renvoie une valeur négative, nulle ou positive selon que la première entrée doit être classée avant, au même niveau, ou après la seconde.

Le tri tient compte de la locale courante. En pratique, il correspond à un tri alphabétique adapté aux conventions de classement de l'environnement d'exécution.

Exemple de code

Le programme suivant utilise directement alphasort comme fonction de comparaison pour scandir.

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
 23 
#define _POSIX_C_SOURCE 200809L

#include <dirent.h>
#include <stdio.h>
#include <stdlib.h>

int main(void) {

    struct dirent ** entries = NULL;
    int count = scandir(".", &entries, NULL, alphasort);
    if (count == -1) {
        perror("scandir");
        return EXIT_FAILURE;
    }

    for (int i = 0; i < count; ++i) {
        puts(entries[i]->d_name);
        free(entries[i]);
    }

    free(entries);
    return EXIT_SUCCESS;
}
Tri alphabétique des entrées

Sujets connexes

scandir
struct dirent
strcoll


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