我最近了解了Unix inode及其用途。特别是,我了解到an.inode在文件系统中是唯一的。
我的问题是:如果用户将Micro SD卡插入其Android设备,该卡是否会成为现有文件系统的一部分,还是会成为单独的文件系统?
或者,换句话说:可以在内部和外部存储中复制索引节点吗?
非常感谢, P
答案 0 :(得分:1)
这是一个单独的文件系统。所以,是的,内部存储上的文件可以与外部存储上的文件具有相同的inode编号,即使它们是不同的文件。
如果您的真正问题是如何唯一标识文件,则需要inode编号和设备ID编号。两者都可以使用* stat()系列调用来检索,特别是stat结构的st_dev和st_ino字段。
答案 1 :(得分:1)
Micro SD卡通常使用FAT32,一个不存储inode的文件系统。 Linux内核创建的随机inode编号与访问新文件时的其他编号不同。
在FAT32文件系统上,路径名足以唯一地标识文件,与文件可以包含任意数量的路径名的其他文件系统不同。
这些FAT32伪造的inode号码被删除了:
如果您想要一种可靠的方法来识别FAT32上的文件,请不要使用它们的inode。
我建议使用路径名的哈希值,如果你想确保避免碰撞,可以使用它们的大小。