Мне нужно перечислить все жесткие ссылки заданного файла в «чистом» C, поэтому без помощи команд bash.Перечислить жесткие ссылки файла C
Я гугл в течение нескольких часов, но не нашел ничего полезного. Моя идея состоит в том, чтобы получить номер inode, затем прокрутить каталог, чтобы найти файлы с таким же inode.
В Баш-то вроде
sudo find/-inum 199053
Все лучшее предложение?
Благодаря
Это кажется UNIX-специфические, поэтому я добавил тег для вас. –
По крайней мере, вы можете сделать оптимизацию коротких замыканий, используя 'stat', чтобы узнать количество жестких ссылок * n * и прервать обход файловой системы после того, как вы нашли * n * ссылки (или полностью избегаете в случае of * n * = 1). Но кроме этого я не знаю более эффективного решения. – 5gon12eder
Вы хотите запустить 'find' из точки монтирования файловой системы (которая может быть или не быть'/') и использовать опцию' -xdev', чтобы оставаться внутри этой файловой системы (поскольку жесткие ссылки не могут пересекать файловую систему границы). Я не думаю, что есть лучший способ сделать это. Зачем вам нужно делать это в «чистом С»? Команда 'find', скорее всего, будет не менее эффективной, чем вы можете писать. –