Provided by: manpages-ja-dev_0.5.0.0.20210215+dfsg-1_all bug

名前

       get_kernel_syms - 公開されているカーネルやモジュールのシンボルの取得

書式

       #include <linux/module.h>

       int get_kernel_syms(struct kernel_sym *table);

説明

       注意: このシステムコールが存在するのは、カーネル 2.6 より前の Linux だけである。

       get_kernel_syms()   は、  table が NULL の場合、 問い合わせできるシンボルの数を返す。 NULL
       以外の場合、以下の構造体の列 (table) に値を入れて返す。

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

       シンボルの中には、 #module-name という形式の、カーネルが空の名前を持っているマジックシンボ
       ル  (magic symbol) が散在している。この形式のシンボルに対応する値は モジュールがロードされ
       たアドレスとなる。

       個々のモジュールから公開 (export) されたシンボルは、マジックモジュールタグ  の後ろに置かれ
       る。また、モジュールはロードされた順番とは逆順で返される。

返り値

       成功すると、 table にコピーされたシンボル数を返す。 エラーの場合、-1 を返し、 errno を適切
       に設定する。

エラー

       返る可能性があるエラーは一つだけである。

       ENOSYS get_kernel_syms()  がこのバージョンのカーネルではサポートされていない。

バージョン

       このシステムコールが存在するのはカーネル 2.4 までの Linux だけである。 Linux 2.6  では削除
       された。

準拠

       get_kernel_syms()  は Linux 固有である。

バグ

       table  用に確保したバッファーの大きさを伝える方法がない。 プログラムがシンボルテーブルの大
       きさを問い合わせた後に、カーネルに  シンボルが追加されると、メモリーの内容が破壊されること
       になる。

       公開されるシンボル名の長さが 59 文字に制限されている。

       これらの制限があるので、このシステムコールを使うよりは query_module(2)  を使うのが望ましい
       (現在では  query_module(2)   自身もそのマニュアルページに書かれているように   他のインター
       フェースを使うのが望ましいとされている)。

関連項目

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

この文書について

       この  man ページは Linux man-pages プロジェクトのリリース 3.79 の一部 である。プロジェクト
       の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。