LinuxForum.Fans
Тема

getdirentries

Автор: Peter 7 сообщений 1751 просмотров
#357958

Здравствуйте!

Кто-нибудь знает, что возвращает эта функция? Я ожидал, Что она возвращает
содержимое каталога, попробовал на каталоге с одним файлом. В выводе имя файла
есть, но, кроме него, ещё непонятно каие последовательности, в т.ч. с непечатаемыми
кодами и кодами большими, чем 127. При этом они разделены последовательностями
из четырёх кодов 0, т.е. подряд 4 числа 0, а я думал, что там будут строки,
разделённые одним кодом 0.

Пётр.

#357959

ЕМНИП getdirentries() почти тоже самое, что и read() для ext2'го(или какой-то там unix'овой фс) каталога... т.е. имена файлов из каталога и их иноды.
скорей всего тебя интересуют opendir() и readdir()...

ЗЫ: если интересует, что сабж возвращает, то посмотри бздяшные маны...там всё расписано...

#357984
Fat-Zer написал:
ЕМНИП getdirentries() почти тоже самое, что и read() для ext2'го(или какой-то там unix'овой фс) каталога... т.е. имена файлов из каталога и их иноды.
скорей всего тебя интересуют opendir() и readdir()...

ЗЫ: если интересует, что сабж возвращает, то посмотри бздяшные маны...там всё расписано...

Я смотрел и opendir и readdir. readdir не рекомендуют использовать как Linux-специфичную,
а для getdirentries нужен файловый дескриптор. Его возвращает open,
а opendir возвращает DIR *.
Ещё есть scandir, но меня она как-то не вдохновила.

Я подумал об inode, но всё равно мне надо знать формат вывода getdirentries.
Никогда не имел дела с BSD.

При поиске первая же ссылка дала описание желаемого, что её вывод есть
набор структур dirent.

Пётр.

#357989
"Peter" написал:
readdir не рекомендуют использовать как Linux-специфичную,

бред... readdir — posix. А getdirentries() как раз BSD-специфичный.

"Peter" написал:
а для getdirentries нужен файловый дескриптор. Его возвращает open,а opendir возвращает DIR *.

и? есть fdopendir(), если что.

"Peter" написал:
Ещё есть scandir, но меня она как-то не вдохновила.

ну да, она для другого нужна...

#358047

Действительно, getdirentris - не POSIX, так что правильнее пользоваться readdir.
В "man readdir" даже пример есть.
Хотя "man 2 readdir" говорит, что она Linux-specific.
fdopendir тоже возвращает DIR * и сама требует fd.

Пётр.

#358212
"Peter" написал:
Хотя "man 2 readdir" говорит, что она Linux-specific.

man 2 описывает системный вызов с тем же названием... он сильно отличается по количеству и значению аргументов.

#358232
Fat-Zer написал:
[quote="Peter"]Хотя "man 2 readdir" говорит, что она Linux-specific.

man 2 описывает системный вызов с тем же названием... он сильно отличается по количеству и значению аргументов.[/quote]
Да, я не заметил сразу. Буду пользоваться readdir, а не fetdirentries.

Пётр.

Войдите или зарегистрируйтесь, чтобы ответить.