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é

Structure struct stat (POSIX)

Entête à inclure

#include <sys/stat.h>

Structure struct stat

La structure struct stat contient les métadonnées retournées par stat, fstat, lstat et fstatat.

ChampDescription
st_devIdentifiant du périphérique contenant le fichier.
st_inoNuméro de série du fichier.
st_modeType du fichier et droits d'accès.
st_nlinkNombre de liens physiques.
st_uidIdentifiant du propriétaire.
st_gidIdentifiant du groupe.
st_rdevIdentifiant de périphérique pour un fichier spécial caractère ou bloc. Champ associé à l'option XSI.
st_sizeTaille en octets pour un fichier régulier, ou longueur du chemin contenu dans un lien symbolique.
st_atimDernier accès aux données.
st_mtimDernière modification des données.
st_ctimDernier changement d'état du fichier.
st_blksizeTaille de bloc préférée pour les entrées/sorties. Champ associé à l'option XSI.
st_blocksNombre de blocs alloués. Champ associé à l'option XSI.
Les macros historiques st_atime, st_mtime et st_ctime correspondent respectivement à st_atim.tv_sec, st_mtim.tv_sec et st_ctim.tv_sec.

Exemple de code

L'exemple suivant affiche la taille et l'horodatage de dernière modification d'un fichier.

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

#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>

int main(int argc, char * argv[]) {

    if (argc != 2) {
        printf("Usage: %s path\n", argv[0]);
        return EXIT_FAILURE;
    }

    struct stat informations;
    if (stat(argv[1], &informations) == -1) {
        perror("stat");
        return EXIT_FAILURE;
    }

    printf("Taille : %ld octets\n", (long) informations.st_size);
    printf("Mtime  : %ld secondes\n", (long) informations.st_mtim.tv_sec);

    return EXIT_SUCCESS;
}
Lecture de quelques champs de struct stat

Sujets connexes

chmod
fchmod
fstat
lstat
stat
struct stat
Types POSIX


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