catgets -
メッセージカタログからメッセージを取り出す
#include <nl_types.h>
char *catgets(nl_catd catalog, int set_number, int message_number,
const char *message);
catgets() は catalog
で指定されたメッセージカタログから、
セット set_number
のメッセージ message_number
を読み取る。 catalog
は、 catopen(3)
の呼び出しによって得られたカタログ
ディスクリプターを指定する。
4番目の引数 message
は、指定のメッセージカタログが現在利用できない
場合に catgets()
が返すデフォルトのメッセージを指す。
メッセージテキストは内部のバッファー領域に格納されており、
保存や変更を行う場合にはアプリケーション側でコピーする必要がある。
返される文字列は常にヌルバイト
('\0') で終端される。
返り値¶
成功した場合、 catgets()
は内部のバッファー領域へのポインターを返す。
ここにはヌル文字で終端されたメッセージ文字列が格納されている。
失敗した場合は message
を返す。
マルチスレッディング (pthreads(7) 参照)¶
catgets()
関数はスレッドセーフである。
catgets() 関数は libc.so.4.4.4c
以降でしか使えない。
Jan 1987 X/Open Portability Guide
では、エラーの時に
返される値により微妙な指定をしている。
catalog
で指定されたメッセージカタログが利用できない場合は
message
を返し、一方メッセージカタログはあるが指定したメッセージがない場合は
空の文字列が返される。
SUSv2
ではこの二種類のエラーリターンは廃止され、
常に message
を返すことにしたようである。