CONFSTR(3)

НАЗВАНИЕ
confstr - получает строковую переменную конфигурации

СИНТАКСИС
#define _POSIX_C_SOURCE 2
или
#define _XOPEN_SOURCE
#include <unistd.h>

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

ОПИСАНИЕ
confstr() получает строковую переменную, зависящую от текущей конфигурации.

Аргумент name - это название системной переменной, которую надо получить. Поддерживаются следующие переменные:

_CS_PATH
    Переменная PATH определяет расположение всех утилит стандарта POSIX.2.

Если buf не равно NULL и len - это не ноль, то confstr() копирует строку в buf, укорачивая ее до len - 1 символов, если это необходимо; также добавляет нулевой символ в конец строки. Это может быть проверено сравнением возвращаемой величины confstr() с len.

Если len равна нулю и buf равен NULL, то confstr() просто возвращает значение, как сказано ниже.

ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
Если name не соответствует списку конфигурационных строк, то confstr() возвращает 0.

ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ
Следующий фрагмент кода определяет расположение всех утилит стандарта POSIX.2:
char *pathbuf; size_t n;
n = confstr(_CS_PATH,NULL,(size_t)0);
if ((pathbuf = malloc(n)) == NULL) abort();
confstr(_CS_PATH, pathbuf, n);

НАЙДЕННЫЕ ОШИБКИ
Если величина name неверна, то переменной errno присваивается код ошибки EINVAL.

СООТВЕТСТВИЕ СТАНДАРТАМ
proposed POSIX.2

НАЙДЕННЫЕ ОШИБКИ
POSIX.2 еще не утвердил окончательный стандарт; информация на этой странице в будущем изменится.

СМ. ТАКЖЕ
sh(1), exec(3), system(3)