スポンサーリンク

GETOBJFORMAT(3) FreeBSD ライブラリ関数マニュアル GETOBJFORMAT(3)

名称

getobjformat − 優先オブジェクトファイルフォーマットの取得

ライブラリ

標準 C ライブラリ (libc, −lc)

書式

#include <objformat.h>

int

getobjformat(char *buf, size_t bufsize, int *argcp, char **argv);

解説

getobjformat() はいくつかの情報源に問い合わせて、優先オブジェクトファイル フォーマットを決め、呼び出し元によって設定されたバッファにその名前をコ ピーします。

オブジェクトファイルフォーマットは、次のように決定されます。 argv が NULL でなく、 −aout または −elf のような明示的なコマンドライン引数が存在する場 合は、その引数がオブジェクトファイルフォーマットを決めます。

そうでない場合、環境に変数 OBJFORMAT が設定されていれば、その変数の値から オブジェクトファイルフォーマットがとられます。

そうでない場合、ファイル /etc/objformat の読み取りが可能で、 ‘OBJFORMAT=xxx’ という形式の行が含まれていれば、オブジェクトファイル フォーマットはそこからとられます。

そうでない場合、組み込みのシステムデフォルトのオブジェクトファイルフォー マットが返ります。

buf は、オブジェクトファイルフォーマットの名前がそこにコピーされる、ユー ザ指定のバッファを示します。 bufsize は、バッファの大きさをバイト数で与え ます。 buf に置かれる文字列は常にヌルで終わります。ヌルで終わるバッファ名 を保持するためにはバッファが小さすぎる場合、エラーになります。

argv は、オブジェクトフォーマットのオプションがスキャンされる、 NULL で終 わる引数ベクトルを示します。引数ベクトルがスキャンしない場合は、 argv を NULL にすることができます。

argcp が NULL でなければ、すべてのオブジェクトフォーマットオプションは引 数ベクトルから削除され、更新された引数カウントが、 argcp で参照される整数 に格納されます。 argcp が NULL ならば、引数ベクトルは変更されないでそのま ま残ります。

戻り値

成功した場合 getobjformat() は、終わりのヌルを含まないオブジェクトファイ ルフォーマット名の長さを返します。オブジェクトファイルフォーマットおよび 終わりのヌルを保持するためには、指定のバッファが小さすぎる場合、 getobjformat() は -1 を返します。その場合バッファおよび、呼び出し元によっ て指定された引数ベクトルの内容は不定です。

環境変数

       OBJFORMAT

環境変数 OBJFORMAT が設定されると、デフォルトのオブジェクト ファイルフォーマットに優先します。 OBJFORMAT は /etc/objformat に優先します。

関連ファイル

       /etc/objformat

存在すればこれが、使用するオブジェクトファイルフォーマッ トを指定します。構文は ‘OBJFORMAT=xxx’ です。

関連項目

objformat(1)

歴史

getobjformat() 関数は FreeBSD 3.0 ではじめて登場しました。

FreeBSD 10.0 September 7, 1998 FreeBSD 10.0

スポンサーリンク