我想在運行期間爲文件分配唯一文件編號。在運行期間爲文件分配唯一編號
爲文件名創建散列對我來說不是一種選擇,因爲我不想要任何衝突。
一個不錯的選擇是爲所有文件創建運行號碼。但是我無法訪問源文件來遍歷運行我的二進制文件的目錄。
所以我需要一些可以從二進制文件中提取文件名的選項(比如使用類似於GDB的符號表)。我不知道該怎麼做。任何幫助都可以使用
我想在運行期間爲文件分配唯一文件編號。在運行期間爲文件分配唯一編號
爲文件名創建散列對我來說不是一種選擇,因爲我不想要任何衝突。
一個不錯的選擇是爲所有文件創建運行號碼。但是我無法訪問源文件來遍歷運行我的二進制文件的目錄。
所以我需要一些可以從二進制文件中提取文件名的選項(比如使用類似於GDB的符號表)。我不知道該怎麼做。任何幫助都可以使用
您可以嘗試從文件本身使用inode編號(st_ino) - 您可以使用fstat(http://linux.die.net/man/2/fstat)獲得該編號。
inode編號是文件系統如何跟蹤文件,它們對於給定的文件系統是唯一的 - 因此只要文件不位於不同的文件系統(不同的掛載點)上,inode號碼是唯一的。
這包括如果有多個鏈接到同一個文件,如果這也讓你擔心。
使用日期和時間,我懷疑你會有重複:) –
你仍然需要一個哈希,只是不完全依賴於名稱 – SGM1
什麼是你的文件號碼,你如何讓他們獨特?你知道[inodes](http://en.wikipedia.org/wiki/Inode)和[文件系統](http://en.wikipedia.org/wiki/File_system)嗎?看起來你的問題可能沒有意義。 –