Provided by: manpages-ru-dev_4.18.1-1_all bug

ИМЯ

       get_kernel_syms - получить экспортируемые символы ядра и модулей

СИНТАКСИС

       #include <linux/module.h>

       [[deprecated]] int get_kernel_syms(struct kernel_sym *table);

ОПИСАНИЕ

       Note: This system call is present only before Linux 2.6.

       Если  table  равно NULL, то get_kernel_syms() возвращает количество символов доступных для
       запроса. Иначе таблица заполняется структурами:

           struct kernel_sym {
               unsigned long value;
               char          name[60];
           };

       Символы вида #module-name представляют собой ссылки на модули. Значение, связанное с таким
       символом, содержит адрес, по которому загружен модуль.

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

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       On success, returns the number of symbols copied to table.  On error, -1 is  returned  and
       errno is set to indicate the error.

ОШИБКИ

       Может возвращаться только одна ошибка:

       ENOSYS Вызов get_kernel_syms() не поддерживается в этой версии ядра.

ВЕРСИИ

       This system call is present only up until Linux 2.4; it was removed in Linux 2.6.

СТАНДАРТЫ

       Вызов get_kernel_syms() есть только в Linux.

ЗАМЕЧАНИЯ

       This  obsolete system call is not supported by glibc.  No declaration is provided in glibc
       headers, but, through a quirk of history, glibc versions before glibc 2.23 did  export  an
       ABI  for  this  system  call.   Therefore,  in  order  to  employ this system call, it was
       sufficient to manually declare the interface in your code; alternatively, you could invoke
       the system call using syscall(2).

ДЕФЕКТЫ

       Нет  способа  указать  размер буфера, выделенного для table. Если символы были добавлены в
       ядро после  того,  как  программа  запросила  размер  таблицы  символов,  то  это  вызовет
       повреждение данных в памяти.

       Длина имён экспортируемых символов ограничена 59 знаками.

       Из-за  этих  ограничений  вместо  данного  системного  вызова  рекомендуется  использовать
       query_module(2) (который, в настоящее время, тоже устарел и заменён на другие  интерфейсы,
       перечисленные в конце этой справочной страницы).

СМ. ТАКЖЕ

       create_module(2), delete_module(2), init_module(2), query_module(2)

ПЕРЕВОД

       Русский    перевод    этой    страницы    руководства    был    сделан   Azamat   Hackimov
       <azamat.hackimov@gmail.com>,   Dmitry   Bolkhovskikh   <d20052005@yandex.ru>,    Vladislav
       <ivladislavefimov@gmail.com>,    Yuri    Kozlov   <yuray@komyakino.ru>   и   Иван   Павлов
       <pavia00@gmail.com>

       Этот  перевод  является  бесплатной  документацией;  прочитайте  Стандартную  общественную
       лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если вы обнаружите ошибки в переводе  этой  страницы  руководства,  пожалуйста,  отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.