Иоахим находится на правильном пути, но, кроме номера инода, необходимо сравнить его устройство, поскольку каждая файловая система, скорее всего, будет иметь индекс 1, 2, ...:
if (f1->f_dentry.d_inode == f2->f_dentry.d_inode &&
!strcmp (f1->f_vfsmnt->mnt_devname, f2->f_vfsmnt->mnt_devname))
// it is the exact same file
Я думал, что было большое / второстепенное устройство, но я не смог его найти. Таким образом, сравнение имени устройства (/dev/dsk/hda1
) является детерминированным, если не таким быстрым.