obtenir le type de système de fichiers en utilisant le système de fichiers de boost
-
26-10-2019 - |
Question
Y at-il une méthode boost :: système de fichiers qui donne le type de système de fichiers pour un chemin, tel que prévu par;
$ stat -f -L -c %T .
ext2/ext3
Je ne veux pas nécessairement une chaîne. Une valeur énumérée ferait.
La solution
Je ne pense pas que boost fournit aucune façon pour effectuer des requêtes de type système de fichiers. Cependant, vous pouvez utiliser la fonction statfs à cet effet. A partir de la page man -
Les rendements fonction statfs () des informations sur un système de fichiers monté. chemin est le chemin d'accès d'un fichier dans le système de fichiers monté. buf est un pointeur sur une structure statfs définie comme suit approximativement:
struct statfs {
__SWORD_TYPE f_type; /* type of file system (see below) */
__SWORD_TYPE f_bsize; /* optimal transfer block size */
fsblkcnt_t f_blocks; /* total data blocks in file system */
fsblkcnt_t f_bfree; /* free blocks in fs */
fsblkcnt_t f_bavail; /* free blocks available to
unprivileged user */
fsfilcnt_t f_files; /* total file nodes in file system */
fsfilcnt_t f_ffree; /* free file nodes in fs */
fsid_t f_fsid; /* file system id */
__SWORD_TYPE f_namelen; /* maximum length of filenames */
__SWORD_TYPE f_frsize; /* fragment size (since Linux 2.6) */
__SWORD_TYPE f_spare[5];
};
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow