我正在尝试为一些应该迭代文件系统树的代码编写测试用例,但如果文件在另一台设备上则应该停止。在为它编写测试时,我考虑在 中创建一个文件/dev/shm
,从我的测试目录符号链接到它,然后检查它是否未被读取,但/dev/shm
似乎是特定于 Linux 的。mount
-ing atmpfs
可能是一个选项,但它需要root ...
任何想法如何实现?
我正在尝试为一些应该迭代文件系统树的代码编写测试用例,但如果文件在另一台设备上则应该停止。在为它编写测试时,我考虑在 中创建一个文件/dev/shm
,从我的测试目录符号链接到它,然后检查它是否未被读取,但/dev/shm
似乎是特定于 Linux 的。mount
-ing atmpfs
可能是一个选项,但它需要root ...
任何想法如何实现?
尝试 FUSE: http: //fuse.sourceforge.net/。FUSE 在 Linux、FreeBSD/NetBSD、OpenSolaris 和 Mac OS X 下受支持,因此,您用于测试的任何玩具文件系统(请参阅http://sourceforge.net/p/fuse/wiki/FileSystems/)都会
a) 是跨平台的 b) 在用户空间中(不需要 root)和 c) 不需要太多的测试脚手架来设置和拆除
这取决于您如何定义“设备”。您是否考虑同一设备上同一磁盘上不同文件系统上的文件?
使用您可以从包含返回的字段中的字段stat(2)
的文件系统中获取数字 ID 。这样您就可以区分文件系统。st_dev
struct stat