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

nlist(3C)

PA-RISC システム用
HP-UX 11i Version 2: September 2004
≫ 

テクニカル ドキュメント

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

 ≫ 目次

 ≫ 索引

名称

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

構文

nlist()

cc [flag]... cfile ...

#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() は、基本的に同じ機能を持っていますが、nlist64() は、新しい nlist 構造 nlist64 を使用し、SOM または ELF ファイルを処理できます。 nlist() は、SOM ファイルのみしか処理できず、nlist 構造を使用します。

nlist 関数は、 file_name の指す名前の実行可能ファイルのネームリストを調べ、選択的に値のリストを抽出して nl の指す nlist/nlist64 構造体の配列に格納します。 nlist/nlist64 構造体の配列の初期値として変数の名前だけが格納されています。 nlist 関数を呼び出すと、変数名にシンボル情報が付け加えられます。 リストは null ネームで終了します。null ネームとは、構造体の変数名の位置に null 文字列を代入したものです。 指定したファイルのネームリストは各変数名で検索されます。 名前が見つかると、シンボルのタイプ、有効範囲、およびファイル内の値が、ネームリスト構造体に挿入されます。 nlist64() 関数を使用する場合、ELF ファイルを検索するときに、セクションインデックスが挿入されます。 nlist() および SOM ファイルを検索するときには、サブスペースインデックスが挿入されます。ワイドモード システムでは、シンボルの値は 64 ビットです。SOM ファイルを検索するときには、値フィールドにゼロが埋められます。名前が見つからない場合は、ネームリスト構造体のフィールドはゼロに設定されます。構造体 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.