confstr(3) Library Functions Manual confstr(3) NAZWA confstr - pobiera zmienne lancuchowe zalezne od konfiguracji BIBLIOTEKA Standardowa biblioteka C (libc, -lc) SKLADNIA #include size_t confstr(size_t size; int name, char buf[size], size_t size); Wymagane ustawienia makr biblioteki glibc (patrz feature_test_macros(7)): confstr(): _POSIX_C_SOURCE >= 2 || _XOPEN_SOURCE OPIS Funkcja confstr() pobiera wartosc zaleznych od konfiguracji zmiennych systemowych. Argument name wyznacza pobierana zmienna systemowa. Dostepne sa zmienne: _CS_GNU_LIBC_VERSION (tylko biblioteka GNU C; od glibc 2.3.2) Lancuch znakow identyfikujacy wersje biblioteki GNU C w systemie (np. ,,glibc 2.3.4"). _CS_GNU_LIBPTHREAD_VERSION (tylko biblioteka GNU C; od glibc 2.3.2) Lancuch znakow identyfikujacy wersje POSIX-owej implementacji watkow dostarczana przez biblioteke C (np. ,,NPTL 2.3.4" lub ,,linuxthreads-0.10"). _CS_PATH Wartosc zmiennej PATH zawierajacej sciezke, w ktorej znalezc mozna wszystkie standardowe programy narzedziowe POSIX.2. Jesli argument buf jest rozny od NULL i size jest rozne od zera, to funkcja confstr() kopiuje wartosc lancucha znakow do buf obcieta, jesli to konieczne, do size - 1 bajtow i zakonczona bajtem null (,,\0"). Moze to zostac wykryte przez porownanie zwracanej przez confstr() wartosci z argumentem size. Jesli size wynosi zero i buf jest rowne NULL, to funkcja confstr() po prostu zwraca wartosc podana ponizej. WARTOSC ZWRACANA Jesli name jest poprawna zmienna konfiguracji, to confstr() zwraca liczbe bajtow (wlaczajac konczacy bajt null), ktore bylyby potrzebne do przechowania pelnej wartosci tej zmiennej. Wartosc moze byc wieksza niz size, co oznacza, ze wartosc w buf jest obcieta. Jesli name jest poprawna zmienna konfiguracji, ale wartosc tej zmiennej jest pusta, to confstr() zwraca 0. Jesli name nie jest nazwa poprawnej zmiennej konfiguracji, to confstr() zwraca 0 i ustawia errno na EINVAL. BLEDY EINVAL Wartosc name jest nieprawidlowa. ATRYBUTY Informacje o pojeciach uzywanych w tym rozdziale mozna znalezc w podreczniku attributes(7). +---------------------------+--------------------------+---------------+ |Interfejs | Atrybut | Wartosc | +---------------------------+--------------------------+---------------+ |confstr() | Bezpieczenstwo watkowe | MT-bezpieczne | +---------------------------+--------------------------+---------------+ STANDARDY POSIX.1-2008. HISTORIA POSIX.1-2001. PRZYKLADY Ponizszy fragment kodu podaje sciezke, w ktorej znalezc mozna 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); ZOBACZ TAKZE getconf(1), sh(1), exec(3), fpathconf(3), pathconf(3), sysconf(3), system(3) TLUMACZENIE Tlumaczenie niniejszej strony podrecznika: Adam Byrtek , Andrzej Krzysztofowicz , Robert Luberda i Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . Linux man-pages 6.18 8 lutego 2026 r. confstr(3)