是否有一种可靠的跨平台(无论如何在 *nix 上)方法可以在另一台设备上创建临时文件



我正在尝试为一些代码编写一个测试用例,这些代码应该遍历文件系统树,但如果文件在另一台设备上,则应停止。在为它编写测试时,我考虑在 /dev/shm 中创建一个文件,从我的测试目录符号链接到它,然后检查它是否未被读取,但/dev/shm似乎是特定于 Linux 的。 mount -ing tmpfs可能是一种选择,但它需要 root...

任何想法如何实现?

试试 FUSE : http://fuse.sourceforge.net/。在 Linux、FreeBSD/NetBSD、OpenSolaris 和 Mac OS X 下都支持 FUSE,因此,无论您使用什么玩具文件系统进行测试(见 http://sourceforge.net/p/fuse/wiki/FileSystems/),都将

a) 跨平台b) 在用户空间中(不需要根)和c) 不需要太多的测试脚手架来设置和拆卸

这取决于您如何定义"设备"。您是否考虑同一设备上同一磁盘上不同文件系统上的文件?

使用 stat(2) 您可以从包含返回struct statst_dev 字段中字段的文件系统中获取数字 ID。这样您就可以区分文件系统。

相关内容

最新更新