Как использовать vfs_readdir в ядре Linux? - PullRequest
0 голосов
/ 11 декабря 2011

Я пытаюсь использовать системный вызов для отображения содержимого каталога.Мне указали в направлении vfs_readdir, но я понятия не имею, как его использовать или что передать ему, чтобы получить содержимое каталога.Все, что я хочу сделать, это иметь возможность перечислять файлы в каталоге, аналогично тому, как работает ls.(В конце концов я намереваюсь сохранить это в каком-то буфере, но пока достаточно просто распечатать содержимое каталога).

1 Ответ

0 голосов
/ 11 декабря 2011

Я думаю, что вам, вероятно, придется открыть каталог, используя filp_open.

Для аргумента "flags" вам, вероятно, нужно поместить некоторую комбинацию флагов LOOKUP_, перечисленных в include / linux / namei.h

Вы можете увидеть, что build_open_flags делает здесь: http://lxr.linux.no/#linux+v3.1.5/fs/open.c#L876, чтобы предоставить флаги для filp_open.

Насколько я знаю, filp_open - это правильный способ открытия файла в пространстве ядра.Однако делать это не рекомендуется.

Если вы делаете это из контекста "нормального" потока, принадлежащего пользовательскому процессу, я думаю, вы будете в порядке.

...