confstr - получает
строковые
переменные
конфигурации
Standard C library (
libc,
-lc)
#include <unistd.h>
size_t confstr(int name, char buf[.size], size_t size);
confstr():
_POSIX_C_SOURCE >= 2 || _XOPEN_SOURCE
confstr()
получает
значение
строковой
переменной,
зависящей
от
конфигурации.
Аргумент
name
это
название
системной
переменной,
значение
которой
нужно
получить.
Поддерживаются
следующие
переменные:
-
_CS_GNU_LIBC_VERSION
(только
библиотека
GNU C; начиная с
glibc 2.3.2)
- Строка с
версией
библиотеки
GNU C в системе
(например,
«glibc 2.3.4»).
-
_CS_GNU_LIBPTHREAD_VERSION
(только
библиотека
GNU C; начиная с
glibc 2.3.2)
- Строка,
определяющая
реализацию
POSIX, которую
предоставляет
библиотека
C (например,
«NPTL 2.3.4» или
«linuxthreads-0.10»).
- _CS_PATH
- Значение
переменной
PATH, в
которой
указывается
где можно
найти все
утилиты
стандарта
POSIX.2.
If
buf is not NULL and
size is not zero,
confstr() copies
the value of the string to
buf truncated to
size - 1 bytes if
necessary, with a null byte ('\0') as terminator. This can be detected by
comparing the return value of
confstr() against
size.
If
size is zero and
buf is NULL,
confstr() just returns the
value as defined below.
If
name is a valid configuration variable,
confstr() returns the
number of bytes (including the terminating null byte) that would be required
to hold the entire value of that variable. This value may be greater than
size, which means that the value in
buf is truncated.
Если
значение
name
—
корректная
переменная
настройки,
но эта
переменная
не имеет
значения,
то
confstr()
возвращает
0. Если
значение
name
не
соответствует
ни одной
корректной
переменной
настройки,
то
confstr()
возвращает
0 и
errno
устанавливается
в
EINVAL.
- EINVAL
- Некорректное
значение
name.
Описание
терминов
данного
раздела
смотрите в
attributes(7).
Интерфейс |
Атрибут |
Значение |
confstr() |
Безвредность
в нитях |
MT-Safe |
POSIX.1-2001, POSIX.1-2008.
Следующий
фрагмент
кода
определяет
расположение
всех
системных
утилит 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),
pathconf(3),
sysconf(3),
system(3)
Русский
перевод
этой
страницы
руководства
был сделан
Azamat Hackimov <
[email protected]>, Dmitriy S. Seregin
<
[email protected]>, Dmitry Bolkhovskikh <
[email protected]>,
Katrin Kutepova <
[email protected]>, Yuri Kozlov
<
[email protected]> и Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]