138 lines
		
	
	
	
		
			4 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			138 lines
		
	
	
	
		
			4 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
.\" Copyright (c) 1998 John D. Polstra
 | 
						|
.\" All rights reserved.
 | 
						|
.\"
 | 
						|
.\" Redistribution and use in source and binary forms, with or without
 | 
						|
.\" modification, are permitted provided that the following conditions
 | 
						|
.\" are met:
 | 
						|
.\" 1. Redistributions of source code must retain the above copyright
 | 
						|
.\"    notice, this list of conditions and the following disclaimer.
 | 
						|
.\" 2. Redistributions in binary form must reproduce the above copyright
 | 
						|
.\"    notice, this list of conditions and the following disclaimer in the
 | 
						|
.\"    documentation and/or other materials provided with the distribution.
 | 
						|
.\"
 | 
						|
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 | 
						|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
						|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
						|
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 | 
						|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
						|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
						|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
						|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
						|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
						|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
						|
.\" SUCH DAMAGE.
 | 
						|
.\"
 | 
						|
.\" %FreeBSD: src/lib/libc/gen/getobjformat.3,v 1.3.2.5 2001/12/14 18:33:51 ru Exp %
 | 
						|
.\"
 | 
						|
.\" $FreeBSD$
 | 
						|
.Dd September 7, 1998
 | 
						|
.Dt GETOBJFORMAT 3
 | 
						|
.Os
 | 
						|
.Sh 名称
 | 
						|
.Nm getobjformat
 | 
						|
.Nd 優先オブジェクトファイルフォーマットの取得
 | 
						|
.Sh ライブラリ
 | 
						|
.Lb libc
 | 
						|
.Sh 書式
 | 
						|
.In objformat.h
 | 
						|
.Ft int
 | 
						|
.Fn getobjformat "char *buf" "size_t bufsize" "int *argcp" "char **argv"
 | 
						|
.Sh 解説
 | 
						|
.Fn getobjformat
 | 
						|
はいくつかの情報源に問い合わせて、
 | 
						|
優先オブジェクトファイルフォーマットを決め、呼び出し元によって設定された
 | 
						|
バッファにその名前をコピーします。
 | 
						|
.Pp
 | 
						|
オブジェクトファイルフォーマットは、次のように決定されます。
 | 
						|
.Va argv
 | 
						|
が
 | 
						|
.Dv NULL
 | 
						|
でなく、
 | 
						|
.Fl aout
 | 
						|
または
 | 
						|
.Fl elf
 | 
						|
のような明示的なコマンドライン引数が存在する場合は、
 | 
						|
その引数がオブジェクトファイルフォーマットを決めます。
 | 
						|
.Pp
 | 
						|
そうでない場合、環境に変数
 | 
						|
.Ev OBJFORMAT
 | 
						|
が設定されていれば、
 | 
						|
その変数の値からオブジェクトファイルフォーマットがとられます。
 | 
						|
.Pp
 | 
						|
そうでない場合、ファイル
 | 
						|
.Pa /etc/objformat
 | 
						|
の読み取りが可能で、
 | 
						|
.Ql OBJFORMAT=xxx
 | 
						|
という形式の行が含まれていれば、オブジェクトファイルフォーマット
 | 
						|
はそこからとられます。
 | 
						|
.Pp
 | 
						|
そうでない場合、
 | 
						|
組み込みのシステムデフォルトのオブジェクトファイルフォーマットが返ります。
 | 
						|
.Pp
 | 
						|
.Va buf
 | 
						|
は、オブジェクトファイルフォーマットの名前がそこにコピーされる、
 | 
						|
ユーザ指定のバッファを示します。
 | 
						|
.Va bufsize
 | 
						|
は、バッファの大きさをバイト数で与えます。
 | 
						|
.Va buf
 | 
						|
に置かれる文字列は常にヌルで終わります。
 | 
						|
ヌルで終わるバッファ名を保持するためにはバッファが小さすぎる場合、
 | 
						|
エラーになります。
 | 
						|
.Pp
 | 
						|
.Va argv
 | 
						|
は、オブジェクトフォーマットのオプションがスキャンされる、
 | 
						|
.Dv NULL
 | 
						|
で終わる引数ベクトルを示します。引数ベクトルがスキャンしない場合は、
 | 
						|
.Va argv
 | 
						|
を
 | 
						|
.Dv NULL
 | 
						|
にすることができます。
 | 
						|
.Pp
 | 
						|
.Va argcp
 | 
						|
が
 | 
						|
.Dv NULL
 | 
						|
でなければ、すべてのオブジェクトフォーマットオプションは引数
 | 
						|
ベクトルから削除され、更新された引数カウントが、
 | 
						|
.Va argcp
 | 
						|
で参照される整数に格納されます。
 | 
						|
.Va argcp
 | 
						|
が
 | 
						|
.Dv NULL
 | 
						|
ならば、引数ベクトルは変更されないでそのまま残ります。
 | 
						|
.Sh 戻り値
 | 
						|
成功した場合
 | 
						|
.Fn getobjformat
 | 
						|
は、終わりのヌルを含まない
 | 
						|
オブジェクトファイルフォーマット名の長さを返します。
 | 
						|
オブジェクトファイルフォーマットおよび終わりのヌルを保持するためには、
 | 
						|
指定のバッファが小さすぎる場合、
 | 
						|
.Fn getobjformat
 | 
						|
は -1 を返します。
 | 
						|
その場合
 | 
						|
バッファおよび、呼び出し元によって指定された引数ベクトルの内容は不定です。
 | 
						|
.Sh 環境変数
 | 
						|
.Bl -tag -width OBJFORMAT
 | 
						|
.It Ev OBJFORMAT
 | 
						|
環境変数
 | 
						|
.Ev OBJFORMAT
 | 
						|
が設定されると、デフォルトのオブジェクトファイルフォーマットに優先します。
 | 
						|
.Ev OBJFORMAT
 | 
						|
は
 | 
						|
.Pa /etc/objformat
 | 
						|
に優先します。
 | 
						|
.El
 | 
						|
.Sh 関連ファイル
 | 
						|
.Bl -tag -width /etc/objformat -compact
 | 
						|
.It Pa /etc/objformat
 | 
						|
存在すればこれが、使用するオブジェクトファイルフォーマットを指定します。構文は
 | 
						|
.Ql OBJFORMAT=xxx
 | 
						|
です。
 | 
						|
.El
 | 
						|
.Sh 関連項目
 | 
						|
.Xr objformat 1
 | 
						|
.Pp
 | 
						|
.Sh 歴史
 | 
						|
.Fn getobjformat
 | 
						|
関数は
 | 
						|
.Fx 3.0
 | 
						|
ではじめて登場しました。
 |