confstr - pobranie zmiennych łańcuchowych zależnych od
konfiguracji
Standardowa biblioteka C (
libc,
-lc)
#include <unistd.h>
size_t confstr(int name, char buf[.size], size_t size);
confstr():
_POSIX_C_SOURCE >= 2 || _XOPEN_SOURCE
Funkcja
confstr() pobiera wartość zależnych od
konfiguracji zmiennych systemowych.
Argument
name wyznacza pobieraną zmienną systemową.
Dostępne są zmienne:
-
_CS_GNU_LIBC_VERSION (tylko biblioteka GNU C; od
glibc 2.3.2)
- Łańcuch znaków identyfikujący
wersję biblioteki GNU C w systemie (np. "glibc
2.3.4").
-
_CS_GNU_LIBPTHREAD_VERSION (tylko biblioteka GNU C;
od glibc 2.3.2)
- Łańcuch znaków identyfikujący
wersję POSIX-owej implementacji wątków
dostarczaną przez bibliotekę C (np. "NPTL 2.3.4"
lub "linuxthreads-0.10").
- _CS_PATH
- Wartość zmiennej PATH
zawierającej ścieżkę, w której
znaleźć można wszystkie standardowe programy
narzędziowe 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.
Jeśli
name jest poprawną zmienną konfiguracji, ale
wartość tej zmiennej jest pusta, to
confstr() zwraca 0.
Jeśli
name nie jest nazwą poprawnej zmiennej
konfiguracji, to
confstr() zwraca 0 i ustawia
errno na
EINVAL.
- EINVAL
- Wartość name jest
nieprawidłowa.
Informacje o pojęciach używanych w tym rozdziale można
znaleźć w podręczniku
attributes(7).
Interfejs |
Atrybut |
Wartość |
confstr() |
Bezpieczeństwo wątkowe |
MT-Safe |
POSIX.1-2001, POSIX.1-2008.
Poniższy fragment kodu podaje ścieżkę, w
której znaleźć znaleźć można
programy systemowe 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)
Autorami polskiego tłumaczenia niniejszej strony podręcznika
są: Adam Byrtek <
[email protected]>, Andrzej Krzysztofowicz
<
[email protected]>, Robert Luberda <
[email protected]> i
Michał Kułach <
[email protected]>
Niniejsze tłumaczenie jest wolną dokumentacją.
Bliższe informacje o warunkach licencji można uzyskać
zapoznając się z
GNU
General Public License w wersji 3 lub nowszej. Nie przyjmuje się
ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy
zgłaszać na adres listy dyskusyjnej
[email protected]