inodeから、ファイル名を取得する
inodeからファイル名を取得する関数ってないのかな?
作ってみました。
#include <iostream> #include <dirent.h> #include <cstring> const std::string getFileNameByFd(unsigned int ino, const char* path) { DIR* dp = opendir(path); struct dirent* dir; std::string d_name; while (NULL != (dir = readdir(dp))) { if (dir->d_ino == ino) { d_name = dir->d_name; break; } } return d_name; } #include <sys/types.h> #include <sys/stat.h> int main() { const char* path = "/path/to/dir"; struct stat st; stat("/path/to/file", &st); std::cout << "File inode: " << st.st_ino << std::endl; std::cout << "---------------------" << std::endl; std::cout << "File name by inode: " << getFileNameByFd(st.st_ino, path) << std::endl; }