readdir() показывает невидимые файлы

Я использую readdir() в Ubuntu для отображения файлов и каталогов. Странно то, что readdir() отображает некоторые файлы, начинающиеся с «точки», а некоторые заканчивающиеся на ~ . Но этих файлов нет в указанном мной каталоге.

Что это за файлы?

Мне было интересно, читая имена файлов, будут ли эти странные файлы также упоминаться d_name или нет?

введите здесь описание изображения

С Уважением


person Naruto    schedule 21.10.2012    source источник
comment
Имена файлов, оканчивающиеся на ~, являются файлами восстановления, используемыми редактором.   -  person cdarke    schedule 21.10.2012


Ответы (2)


readdir читает все файлы, присутствующие в папке, а ls показывает только не скрытые файлы. Попробуйте перечислить свои файлы с помощью ls -a, и вы увидите эти файлы.

person tomahh    schedule 21.10.2012
comment
но я планирую написать программу, которая находит файлы в каталогах и указывает их путь. Есть ли способ игнорировать их. - person Naruto; 21.10.2012
comment
Просто добавьте проверку условия, если файл, который вы собираетесь распечатать, начинается с точки или нет. - person tomahh; 21.10.2012
comment
@UmerFarooq if (filename[0] != '.' && filename[strlen(filename) - 1] != '~') - person ; 21.10.2012
comment
Я думал, что это какой-то системный вызов. Во всяком случае, я рад, что думал о том же, чтобы поставить условное утверждение. - person Naruto; 21.10.2012