Linux上的getfsstat()相当于什么?

me2*_*me2 3 linux filesystems mount

问题说明了一切.我想要C函数调用,它返回已挂载文件系统的列表以及文件系统类型等相关信息.

P S*_*ved 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);
Run Code Online (Sandbox Code Playgroud)

不幸的是,这些功能不在POSIX中.但它们是用glibc进行管理和实现的,所以我认为它们比解析更好/proc.