CONFSTR(3)

名称
confstr - ストリング値の環境設定可能な変数を得る

書式
#include <unistd.h> size_t confstr(int name, char *buf, size_t len)

解説
このインタフェースは、 sysctl(3) によって旧式になっています。

confstr() 関数は、環境設定で定義したストリング値をアプリケーションが 得るための方式を提供します。

name 引数は、照会されるシステム変数を指定します。各名前の値の シンボリック定数は、インクルードファイル <unistd.h> の中にあります。 len 引数は、引数 buf が参照するバッファのサイズを指定します。 len がゼロでない 場合、 buf は NULL でないポインタであり、 name には、最高 len - 1 バイトの 値があり、値はバッファ buf にコピーされます。コピーされた値の末尾は必ず NULL です。

利用可能な値は次のとおりです。

_CS_PATH
    全標準ユーティリティを検出する PATH 環境設定変数の値を返します。

戻り値
confstr() の呼び出しが正常に完了しない場合、 -1 が返され、該当する errno が 設定されます。そうでない場合、変数に環境設定定義された値がない場合、 0 が 返され、 errno は修正されません。そうでない場合は、環境設定定義された 値全体を入れるのに必要なバッファサイズが返されます。このサイズが引数 len より大きい場合、 buf 内のストリングは切り捨てされます。

エラー
confstr() 関数は、処理が正常に完了せず、ライブラリ関数 malloc(3) と sysctl(3) 用に指定されたエラーについて error を設定することがあります。

さらに、次のエラーがレポートされることがあります。

[EINVAL]
    name 引数の値は無効です。

関連項目
sysctl(3)

歴史
confstr() 関数は 4.4BSD で最初に現れました。