Provided by: manpages-ja-dev_0.5.0.0.20180315+dfsg-1_all bug

名前

       confstr - コンフィグレーションに依存した文字列変数の取得

書式

       #include <unistd.h>

       size_t confstr(int name, char *buf, size_t len);

   glibc 向けの機能検査マクロの要件 (feature_test_macros(7)  参照):

       confstr(): _POSIX_C_SOURCE >= 2 || _XOPEN_SOURCE

説明

       confstr()  はコンフィグレーションに依存した文字列変数の値を取得する。

       引き数 name は、問い合わせ内容を表すシステム変数である。 以下の変数がサポートされている。

       _CS_GNU_LIBC_VERSION (GNU C library 限定; glibc 2.3.2 以降)
              そのシステムの GNU C ライブラリのバージョンを示す文字列 (例えば "glibc 2.3.4")。

       _CS_GNU_LIBPTHREAD_VERSION (GNU C library 限定; glibc 2.3.2 以降)
              その  C  ライブラリが提供している  POSIX  実装を示す文字列  (例えば "NPTL 2.3.4" や
              "linuxthreads-0.10")。

       _CS_PATH
              すべての POSIX.2 標準ユーティリティが見つかるような PATH の値。

       buf が NULL でなく、かつ len が 0 でなければ confstr() は取得 した文字列の内容を buf  にコ
       ピーする。必要ならば長さが  len  - 1 バイトに切り捨てられて、NULL バイト ('\0') で終端され
       る。 末尾が切り捨てられたかどうかを判定するには、 confstr() の返り値を len  と比較すればよ
       い。

       len が 0 で buf が NULL ならば、 confstr()  は以下で定義された値 (訳注: 切り捨てる前の、取
       得した文字列の長さ) を返す。

返り値

       name が有効なコンフィギュレーション変数の場合、 confstr()   はその変数の値全体を保持するの
       に必要であったバイト数を返す (文字列終端のヌルバイトも含む)。この値は len より大きいことも
       ある。この場合には、 buf に格納された値の末尾が切り詰められたことを意味する。

       name が有効なコンフィギュレーション変数だが、 変数が値を持っていない場合、 confstr()  は 0
       を返す。  name が有効なコンフィグレーション変数に対応していなければ、 confstr()  は 0 を返
       し、 errnoEINVAL を設定する。

エラー

       EINVAL name の値が不正である。

準拠

       POSIX.1-2001.

       次の部分的なコードは、 POSIX.2 システムのユーティリティがあるパス を取得するものである。

           char *pathbuf;
           size_t n;

           n = confstr(_CS_PATH, NULL, (size_t) 0);
           pathbuf = malloc(n);
           if (pathbuf == NULL)
               abort();
           confstr(_CS_PATH, pathbuf, n);

関連項目

       getconf(1), sh(1), exec(3), fpathconf(3)  sysconf(3) pathconf(3)  system(3)

この文書について

       この man ページは Linux man-pages プロジェクトのリリース 3.79 の一部  である。プロジェクト
       の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。