#include <sys/stat.h>
int fstatat( int fd, const char * restrict path, struct stat * restrict buf, int flag );
La fonction fstatat récupère les métadonnées d'un fichier en interprétant un chemin relativement à un dossier déjà ouvert. Elle permet aussi de contrôler le traitement des liens symboliques via le paramètre flag.
AT_FDCWD et AT_SYMLINK_NOFOLLOW sont définies par <fcntl.h>.AT_FDCWD.AT_SYMLINK_NOFOLLOW.
En cas de succès, la fonction renvoie 0. En cas d'erreur, elle renvoie -1 et positionne errno.
L'exemple suivant inspecte un chemin relativement au dossier courant en demandant à ne pas suivre les liens symboliques.
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 <fcntl.h> #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 (fstatat(AT_FDCWD, argv[1], &informations, AT_SYMLINK_NOFOLLOW) == -1) { perror("fstatat"); return EXIT_FAILURE; } printf("Mode : %lo\n", (unsigned long) informations.st_mode); return EXIT_SUCCESS; } |
Fonction définie par POSIX.
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 :