.\" -*- coding: UTF-8 -*- .\" Copyright (C) 1996 Free Software Foundation, Inc. .\" .\" %%%LICENSE_START(GPL_NOVERSION_ONELINE) .\" This file is distributed according to the GNU General Public License. .\" %%%LICENSE_END .\" .\" 2006-02-09, some reformatting by Luc Van Oostenryck; some .\" reformatting and rewordings by mtk .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH GET_KERNEL_SYMS 2 "15 сентября 2017 г." Linux "Руководство программиста Linux" .SH ИМЯ get_kernel_syms \- получить экспортируемые символы ядра и модулей .SH СИНТАКСИС .nf \fB#include \fP .PP \fBint get_kernel_syms(struct kernel_sym *\fP\fItable\fP\fB);\fP .fi .PP \fIЗамечание\fP: В заголовочных файлах glibc этой системный вызов отсутствует; смотрите ЗАМЕЧАНИЯ. .SH ОПИСАНИЕ \fBЗамечание\fP: Данный системный вызов доступен только в ядрах до Linux 2.6. .PP Если \fItable\fP равно NULL, то \fBget_kernel_syms\fP() возвращает количество символов доступных для запроса. Иначе таблица заполняется структурами: .PP .in +4n .EX struct kernel_sym { unsigned long value; char name[60]; }; .EE .in .PP Символы вида \fB#\fP\fImodule\-name\fP представляют собой ссылки на модули. Значение, связанное с таким символом, содержит адрес, по которому загружен модуль. .PP К символам, экспортируемым из модуля, добавляется метка модуля, а модули возвращаются в обратном порядке, в котором были загружены. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" При успешном выполнении возвращается количество символов, скопированных в \fItable\fP. В случае ошибки возвращается \-1, а \fIerrno\fP устанавливается в соответствующее значение. .SH ОШИБКИ Может возвращаться только одна ошибка: .TP \fBENOSYS\fP Вызов \fBget_kernel_syms\fP() не поддерживается в этой версии ядра. .SH ВЕРСИИ .\" Removed in Linux 2.5.48 Данный системный вызов есть только в Linux до версии 2.4; он был удалён в Linux 2.6. .SH "СООТВЕТСТВИЕ СТАНДАРТАМ" Вызов \fBget_kernel_syms\fP() есть только в Linux. .SH ЗАМЕЧАНИЯ Устаревший системный вызов, не поддерживается glibc. В заголовочных файлах glibc он не объявлен, но в недавнем прошлом версии glibc до 2.23 экспортировали ABI для этого системного вызова. Поэтому, чтобы получить данный системный вызов достаточно вручную объявить интерфейс в своём коде; или же можно вызвать его через \fBsyscall\fP(2). .SH ДЕФЕКТЫ Нет способа указать размер буфера, выделенного для \fItable\fP. Если символы были добавлены в ядро после того, как программа запросила размер таблицы символов, то это вызовет повреждение данных в памяти. .PP Длина имён экспортируемых символов ограничена 59 знаками. .PP Из\-за этих ограничений вместо данного системного вызова рекомендуется использовать \fBquery_module\fP(2) (который, в настоящее время, тоже устарел и заменён на другие интерфейсы, перечисленные в конце этой справочной страницы). .SH "СМ. ТАКЖЕ" \fBcreate_module\fP(2), \fBdelete_module\fP(2), \fBinit_module\fP(2), \fBquery_module\fP(2) .SH ЗАМЕЧАНИЯ Эта страница является частью проекта Linux \fIman\-pages\fP версии 5.10. Описание проекта, информацию об ошибках и последнюю версию этой страницы можно найти по адресу \%https://www.kernel.org/doc/man\-pages/. .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан Azamat Hackimov , Dmitry Bolkhovskikh , Vladislav , Yuri Kozlov и Иван Павлов . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .