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 еще не утвердил окончательный стандарт;
информация на этой странице в будущем изменится.