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.

¿Fue útil?

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
scroll top