Scroll to navigation

get_kernel_syms(2) System Calls Manual get_kernel_syms(2)

NAZWA

get_kernel_syms - pobranie udostępnionych symboli jądra i modułów

SKŁADNIA

#include <linux/module.h>
[[deprecated]] int get_kernel_syms(struct kernel_sym *table);

OPIS

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

Jeśli table jest równe NULL, get_kernel_syms() zwraca liczbę symboli dostępnych dla zapytania. W przeciwnym wypadku wypełniana jest tabela struktur:


struct kernel_sym {

unsigned long value;
char name[60]; };

Symbole są przeplatane magicznymi symbolami o postaci #nazwa-modułu, gdzie jądru odpowiada pusta nazwa.Wartością związaną z symbolem tej postaci jest adres, pod którym moduł został załadowany.

Symbole udostępniane przez poszczególne moduły następują po magicznych znacznikach modułów, a same moduły są zwracane kolejności odwrotnej do kolejności ich załadowania.

WARTOŚĆ ZWRACANA

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

BŁĘDY

Istnieje tylko jeden możliwy powód zwrócenia błędu:

get_kernel_syms() nie jest obsługiwane w tej wersji jądra.

WERSJE

To wywołanie systemowe jest obecne w Linuksie tylko do wersji 2.4 jądra; zostało usunięte w Linuksie 2.6.

STANDARDY

get_kernel_syms() jest specyficzna dla Linuksa.

UWAGI

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).

BŁĘDY

Nie ma możliwości wskazania rozmiaru bufora przydzielonego dla table. Jeśli po zapytaniu przez program o rozmiar tabeli symboli zostały dodane do jądra nowe symbole, pamięć może zostać zamazana.

Długość nazw udostępnianych symboli jest ograniczona do 59 znaków.

Z powodu powyższych ograniczeń, to wywołanie systemowe jest przestarzałe, zamiast tego wywołanie systemowego zalecane jest query_module(2) (które dziś również jest uważane za przestarzałe na rzecz innych interfejsów opisanych na stronie podręcznika tego wywołania systemowego).

ZOBACZ TAKŻE

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

TŁUMACZENIE

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys <pborys@dione.ids.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.

4 grudnia 2022 r. Linux man-pages 6.03