在Linux上,getfsstat()的等效函数是什么?

3

问题已经说明了。我想要一个C函数调用,返回已挂载文件系统的列表,以及与之关联的信息,例如文件系统类型。

2个回答

6
您需要查找getmntent以及其他*mntent函数族。详见manpage页面 了解更多信息。
代码示例取自此处并进行了少量修改。 /etc/mtab是包含已挂载文件系统列表的文件。
mounts = setmntent("/etc/mtab", "r");
while ( (ent = getmntent(mounts)) != NULL ){
    if (strcmp(ent->mnt_type, "iso9660") == 0)
       /* copy mount point to output */
       strcpy(retval[cd_count - 1], ent->mnt_dir);
    } /* if */
} /* while */
endmntent(mounts);

很遗憾,这些功能不在POSIX标准中。但它们已经在glibc中实现并有man页,因此我认为它们比解析/proc更好。


这将为您提供/etc/fstab文件中条目的信息,而不是内核中实际挂载的文件系统(如FreeBSD的getfsstat())。FreeBSD有此功能,但似乎Linux尚未实现。 - Luis Colorado

2
您可以解析/proc/filesystems

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接