Cómo comprobar en el código C si un directorio en el sistema de archivos NFS?

StackOverflow https://stackoverflow.com//questions/11699426

  •  13-12-2019
  •  | 
  •  

Pregunta

En mi C/C++ programa me gustaría comprobar si los datos en el directorio especificado por el usuario reside en el sistema de archivos NFS.La verificación es necesaria porque la latencia de procesamiento de datos y el ancho de banda es peor para el NFS remoto directorio.Me gustaría emitir una advertencia al usuario en caso de que el directorio de datos es NFS.

¿Cómo puedo hacer eso?Me imaginé que hay stat() la llamada que debe ser capaz de ayudarme, pero los detalles no están claros.

Estoy en Linux.

¿Fue útil?

Solución

Usted debe utilizar statfs(2) y de verificación f_type.

#include <sys/statfs.h>

struct statfs foo;
if (statfs ("/foo/bar", &foo)) {
    /* error handling */
}

if (foo.f_type == NFS_SUPER_MAGIC) {
    /* nfs warning */
}

Estoy de acuerdo con Basile en la utilidad de hacerlo.

Otros consejos

La llamada del sistema que está buscando es statfs .Dado algún camino, le dará información sobre el sistema de archivos en el que existe la ruta, incluido qué sistema de archivos está usando.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top