在运行时期间为File分配唯一编号

时间:2014-03-24 18:16:30

标签: c linux

我想在运行时为文件分配唯一的文件编号。

  1. 创建文件名的哈希对我来说不是一个选项,因为我不想发生任何冲突。

  2. 一个不错的选择是为所有文件创建运行数字。但我没有访问源文件来遍历运行我的二进制文件的目录。

  3. 所以我需要一些可以从二进制文件中提取文件名的选项(假设使用类似于GDB的符号表)。我不知道该怎么做。任何帮助都是适当的

1 个答案:

答案 0 :(得分:2)

您可以尝试使用文件本身的inode编号(st_ino) - 您可以使用fstat(http://linux.die.net/man/2/fstat)来获取该编号。

inode编号是文件系统跟踪文件的方式,它们对于给定的文件系统是唯一的 - 因此只要文件不位于不同的文件系统(不同的挂载点)上,就会出现inode编号是独一无二的。

这包括如果有多个指向同一文件的链接,如果这也让您担心。