我写notifyfs(对于Linux现在只),它是:如何确定纯系统文件系统?
一个fsevent通知,这应该与保险丝和网络文件系统的工作,像fuse.sshfs,CIFS和NFS。
项的GUI客户端可以用它来建立自己的意见的缓存
必须有notifyfs确定文件系统的方式,如报告在/ proc /自/ mountinfo,是系统相关文件系统或“真实”文件系统。例如cpuset,cgroup,devtmpfs和sysfs就是我所说的系统文件系统,而ext2,ext3和tmpfs,vfat和nfs,cifs是“真正的”文件系统。
系统文件系统和真实文件系统的区别在于真正的文件系统可以通过inotify进行监视,而系统文件系统则不是。将一个inotify手表放在/ proc的“文件”中,你会发现这是行不通的。
查看/ proc/filesystems时,唯一的额外信息是“nodev”,它表示mountsource是一个blockdevice或不是。当它是一个块设备时,它不是一个系统文件系统。但是当它不是一个块设备(并且指定了nodev)时,它并不总是一个系统文件系统,例如网络文件系统cifs和nfs,或者tmpfs和ramfs。
有没有一种方法可以确定“nodev”文件系统的行为类似真实文件系统,例如通过inotify可以监视?
由于提前,
燕姿
'df'(磁盘空闲)只显示您称为“真实”的文件系统吗?如果是的话,你可以看看它的源代码。 – rantanplan 2013-04-28 12:02:58
这是一个很好的。我会查一下。 – user1388973 2013-04-28 15:11:07
我发现:fstat调用(获取statvfs)是在挂载点上完成的。如果nr块(或inode)被报告大于零,那么与处理“真实”fs,否则是系统fs。 – user1388973 2013-04-28 15:53:48