Obtener el tipo de sistema de archivos usando el sistema de archivos Boost
-
26-10-2019 - |
Pregunta
¿Existe un método en Boost :: FileSystem que proporciona el tipo de sistema de archivos para una ruta, según lo dispuesto por;
$ stat -f -L -c %T .
ext2/ext3
No necesariamente quiero una cadena. Un valor enumerado sería.
Solución
No creo que Boost proporcione ninguna forma para consultar el tipo de sistema de archivos. Sin embargo, es posible que desee utilizar la función STATFS para este propósito. De la página del hombre -
La función statfs () devuelve información sobre un sistema de archivos montados. La ruta es el nombre de ruta de cualquier archivo dentro del sistema de archivos montado. BUF es un puntero a una estructura STATFS definida aproximadamente de la siguiente manera:
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];
};
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow