Você pode dizer se uma pasta está em um disco local procurando o tipo de sistema de arquivos . A primeira parte da resposta é encontrar o sistema de arquivos que contém a pasta. Para fazer isso, você precisa encontrar o sistema de arquivos usando o campo st_dev
da stat
informação para a pasta . (Você também pode fazer isso verificando o caminho da pasta, mas então precisa verificar cada elemento do caminho para links simbólicos).
Você pode fazer referência cruzada ao campo st_dev
com a tabela de montagem em /proc/mounts
usando getmntent_r()
. Há um exemplo disso em uma resposta anterior . O campo mnt_type
fornecerá o texto do tipo de sistema de arquivos, e você poderá comparar a sequência com uma lista de sistemas de arquivos de rede.
Você pode informar mais informações sobre os sistemas de arquivos FUSE observando o campo mnt_fsname
, mas existem muitos sistemas de arquivos FUSE. Você pode querer tratar todos eles como armazenamento de rede. Você terá que fazer sua própria chamada sobre sistemas de arquivos em cluster, como o GFS.