本文に進む 日本−日本語
日本HPホーム 製品とサービス お客様サポート/ ダウンロード ソリューション ご購入の方法
≫ お問い合わせ
詳細検索オプション
日本HPホーム
HP-UX リファレンス: セクション 3 : ライブラリ (N~Z) > n

nlist(3E)

Itanium(R) ベース システム用
HP-UX 11i Version 2: September 2004
≫ 

テクニカル ドキュメント

PDF版
フィードバック
ここから本文が始まります

 ≫ 目次

 ≫ 索引

名称

nlist(), nlist64() ― ネームリストからエントリーを取得

構文

nlist()

cc [flag]... cfile ... -lelf [library]...

#include <nlist.h>

int nlist(const char *file_name, struct nlist *nl);

nlist64()

cc [flag]... cfile ... -lelf [library]...

#include <nlist.h>

int nlist64(const char* file_name, struct nlist64 *nl);

特記事項

シンボルテーブルの型の情報と値の情報の使い方には、本質的に移植性がありません。 そのため、これらの情報を扱うプログラムの移植は、 nlist()nlist64() によって簡単にはなりますが、 HP-UX のすべての実装を通じた完全な移植性は期待できません。

説明

nlist()nlist64() は、基本的に同じ機能を持っており、SOM ファイルや ELF ファイルを処理することができます。 nlist 構造体は nlist64 構造体と同じ構造を持ち、ソースコードの互換性を高めるために使用されます。

nlist/nlist64 関数は、 file_name で名前が指定された実行可能ファイルのネームリストを調べ、そこから値を選択して抽出し、そのリストを nl が指す nlist/nlist64 構造体の配列に格納します。 nlist/nlist64 構造体の配列には、初期値として変数の名前だけが格納されています。 nlist/nlist64 関数を呼び出すと、変数名にシンボル情報が付け加えられます。 リストの最後には null ネームが加えられていて、そこでリストが終わっていることを表しています。null ネームは null 文字列からなる名前で、構造体の変数名の位置に置かれます。 各変数名は、ファイルのネームリストを検索して探されます。 名前が見つかると、シンボルのタイプ、有効範囲、およびファイル内の値が、ネームリスト構造体に挿入されます。 検索するファイルが ELF ファイルの場合は、セクションインデックスも挿入されます。 SOM ファイルの場合は、サブスペースインデックスが挿入されます。 シンボルの値は 64 ビットです。 検索するファイルが SOM ファイルのときには、値フィールドにゼロが埋められます。 名前が見つからない場合は、ネームリスト構造体のフィールドには 0 が設定されます。 構造体 nlist および nlist64 は、インクルードファイル <nlist.h> で定義されています。 シンボルテーブル構造体の詳細については、 a.out(4)nlist(4) を参照してください。

指定する実行可能ファイルの構造とシンボルテーブルは、 a.out(4)a.out ファイルに対して説明されている仕様に合っている必要があります。 情報はリンカー ld(1) が使用するシンボルテーブルから抽出されます。

実行可能ファイルがこうした条件を満たしているコンピュータでは、 ファイル /stand/vmunix に保持されているシステムのネームリストをこの関数を用いて調べることにより、最新のシステムアドレスを得ることができます。

戻り値

指定のファイルが見つからないか、見つかってもリンカーシンボルテーブルを持った有効なオブジェクトファイルでない場合は、 nlist 構造体のすべてのフィールドに 0 が設定されます。

nlist() は、エラーがあったときは -1 を、また正常終了のときは 0 をそれぞれ返します。

警告

互換性のため、ヘッダーファイルの <a.out.h> をインクルードすると、 <nlist.h> が自動的にインクルードされます。 ただし、 nlist() で使用する情報だけが必要な場合は、 <a.out.h> のインクルードはお勧めできません。 <a.out.h> をインクルードする場合には、通常 #undef n_name を続けて指定する必要があります。

標準準拠

nlist(): SVID2, SVID3

印刷用画面へ
プライバシー 本サイト利用時の合意事項
© 1983-2004 Hewlett-Packard Development Company, L.P.