Всякий раз, когда я перечисляю содержимое каталога с помощью такой функции, как readdir, возвращаемые имена файлов также включают «.» и "..". У меня есть подозрение, что это просто обычные ссылки в файловой системе и поэтому неотличимы от реальных файлов, но мне всегда приходится их отфильтровывать, потому что они не являются реальными объектами в каталоге, который я перечисляю. Есть ли веская причина для таких функций, как readdir, включать их? Содержат ли некоторые операционные или файловые системы больше или разные имена виртуальных файлов? Есть ли лучший способ отфильтровать их, кроме как путем сравнения строк с "." и ".."?
Обновление: спасибо всем за ответы. Полагаю, я всегда думал, что такие вещи, как ./ и ../, были простыми соглашениями, которые можно было обрабатывать с помощью поиска и замены. Я нахожу это немного удивительным, хотя, вероятно, более эффективным и прозрачным, чтобы они были частью самой файловой системы.
Однако остается один вопрос: поскольку . и.. произвольны ли имена этих ссылок, существуют ли файловые системы, использующие другие?