Provided by: manpages-pl-dev_4.23.1-1_all bug

NAZWA

       sysconf - pobiera informacje o konfiguracji w trakcie uruchomienia

BIBLIOTEKA

       Standardowa biblioteka C (libc, -lc)

SKŁADNIA

       #include <unistd.h>

       long sysconf(int name);

OPIS

       POSIX  pozwala  testować  w  czasie kompilowania aplikacji lub w czasie jej działania, czy pewne opcje są
       wspierane lub jakie są wartości pewnych konfigurowalnych stałych lub limitów.

       W czasie kompilacji jest to robione przez zainkludowanie <unistd.h> lub <limits.h> i testowanie  wartości
       pewnych makr.

       W  czasie  działania  programu,  można  odpytać  o  wartości  liczbowe, używając opisywanej tutaj funkcji
       sysconf(). Wartości liczbowe dotyczące systemu plików, w którym jest umieszczony dany plik, można uzyskać
       za pomocą fpathconf(3) i pathconf(3). Wartości będące łańcuchami znaków zwraca funkcja confstr(3).

       Wartości zwracane przez powyższe funkcje są stałymi dotyczącymi konfiguracji systemu, które  nie  zmienią
       się przez cały czas życia procesu.

       Dla  opcji zazwyczaj istnieje stała _POSIX_COŚ, która może być zdefiniowana w <unistd.h>. Jeżeli nie jest
       zdefiniowana, można uzyskać jej wartość w czasie działania programu. Jeżeli wartością jest  -1,  to  dana
       opcja  nie  jest  wspierana   w  systemie.  Wartość  0  oznacza,  że istnieją odpowiednie funkcje i pliki
       nagłówkowe, ale należy sprawdzić w czasie działania, w jakim stopniu dana opcja jest  wspierana.  Wartość
       inna  niż  -1 i 0 oznacza, że dana opcja jest wspierana. Zazwyczaj wartości (takie jak 200112L) oznaczają
       rok i miesiąc rewizji standardu POSIX opisującej tę opcję. Dopóki  odpowiedni  standard  POSIX  opisujący
       opcję  nie  zostanie  opublikowany,  glibc używa wartości 1, aby zasygnalizować, że opcja jest wspierana.
       Odpowiednim argumentem funkcji sysconf() będzie _SC_COŚ. Listę opcji można znaleźć w posixoptions(7).

       Dla zmiennych lub  limitów  zazwyczaj  istnieje  stała  _COŚ  definiowana  w  <limits.h>  lub  _POSIX_COŚ
       definiowana  w  <unistd.h>. Stała nie będzie zdefiniowana, jeżeli limit nie jest określony. Jeżeli  stała
       jest zdefiniowana, to określa gwarantowany limit, ale w rzeczywistości może być wspierana wartość większa
       niż wynosi wartość tej stałej. Jeśli aplikacja chce zrobić użytek ze zmiennych, których wartości mogą się
       różnić w zależności od systemu, może wywołać  funkcję  sysconf().  Argumentem  funkcji  sysconf()  będzie
       _SC_COŚ.

   Zmienne POSIX.1
       W tabeli poniżej podajemy nazwę zmiennej, nazwę argumentu funkcji sysconf(), używanego do odpytania o jej
       wartość, oraz krótki opis.

       Najpierw wartości zgodne z POSIX.1.

       ARG_MAX - _SC_ARG_MAX
              Maksymalna   długość   argumentów   funkcji   z   rodziny  exec(3).  Nie  może  być  mniejsza  niż
              _POSIX_ARG_MAX (4096).

       CHILD_MAX - _SC_CHILD_MAX
              Maksymalna  liczba  równoczesnych  procesów  jednego  użytkownika.  Nie  może  być  mniejsza   niż
              _POSIX_CHILD_MAX (25).

       HOST_NAME_MAX - _SC_HOST_NAME_MAX
              Maksymalna  długość  nazwy  komputera, pomijając końcowy bajt NULL, zwracana przez gethostname(2).
              Nie może być mniejsza niż _POSIX_HOST_NAME_MAX (255).

       LOGIN_NAME_MAX - _SC_LOGIN_NAME_MAX
              Maksymalna długość nazwy użytkownika, łącznie z końcowym znakiem NULL. Nie może być  mniejsza  niż
              _POSIX_LOGIN_NAME_MAX (9).

       NGROUPS_MAX - _SC_NGROUPS_MAX
              Maksymalna liczba identyfikatorów dodatkowych grup.

       tyknięcia zegara - _SC_CLK_TCK
              Liczba  tyknięć  zegara na sekundę. Odpowiadająca jej zmienna jest przestarzała, a była oczywiście
              nazwana  CLK_TCK. (Uwaga: makro CLOCKS_PER_SEC nie dostarcza informacji:  jego  wartość  musi  być
              równa 1000000).

       OPEN_MAX - _SC_OPEN_MAX
              Maksymalna  liczba plików, które proces może mieć otwarte w dowolnym czasie. Nie może być mniejsza
              niż  _POSIX_OPEN_MAX (20).

       PAGESIZE - _SC_PAGESIZE
              Rozmiar strony w bajtach. Nie może być mniejszy niż 1.

       PAGE_SIZE - _SC_PAGE_SIZE
              Synonim PAGESIZE/_SC_PAGESIZE (POSIX określa i PAGESIZE, i PAGE_SIZE).

       RE_DUP_MAX - _SC_RE_DUP_MAX
              Liczba powtórzonych wystąpień  BRE dopuszczalnych w regexec(3) i regcomp(3). Nie może być mniejsza
              niż _POSIX2_RE_DUP_MAX (255).

       STREAM_MAX - _SC_STREAM_MAX
              Maksymalna  liczba  strumieni,  którą  proces  może  otworzyć  w  dowolnym  czasie.   Jeśli   jest
              zdefiniowana,  to  ma taką samą wartość jak standardowe makro FOPEN_MAX w C. Nie może być mniejsza
              niż _POSIX_STREAM_MAX (8).

       SYMLOOP_MAX - _SC_SYMLOOP_MAX
              Maksymalna liczba dowiązań symbolicznych w ścieżce nie powodująca zwrócenia błędu ELOOP. Nie  może
              być mniejsza niż _POSIX_SYMLOOP_MAX (8).

       TTY_NAME_MAX - _SC_TTY_NAME_MAX
              Maksymalna  długość  nazwy  urządzenia  terminalowego,  włączając  końcowy znak NULL. Nie może być
              mniejsza niż _POSIX_TTY_NAME_MAX (9).

       TZNAME_MAX - _SC_TZNAME_MAX
              Maksymalna liczba bajtów w nazwie strefy czasowej. Nie może  być  mniejsza  niż  _POSIX_TZNAME_MAX
              (6).

       _POSIX_VERSION - _SC_VERSION
              Określa  rok  i  miesiąc,  w  formacie YYYYMML, w którym został zaakceptowany standard POSIX.1. Na
              przykład wartość 199009L oznacza wersję standardu z września 1990 roku.

   Zmienne POSIX.2
       Następnie podajemy wartości POSIX.2 określające limity dla programów użytkowych.

       BC_BASE_MAX - _SC_BC_BASE_MAX
              Określa maksymalną wartość obase akceptowaną przez program użytkowy bc(1).

       BC_DIM_MAX - _SC_BC_DIM_MAX
              Określa maksymalną dopuszczalną liczbę elementów w tabelach w programie bc(1).

       BC_SCALE_MAX - _SC_BC_SCALE_MAX
              Określa maksymalną wartość scale akceptowaną przez program użytkowy bc(1).

       BC_STRING_MAX - _SC_BC_STRING_MAX
              Określa maksymalną długość łańcucha znaków akceptowanego przez bc(1).

       COLL_WEIGHTS_MAX - _SC_COLL_WEIGHTS_MAX
              Określa maksymalną liczbę wag, które można przypisać do wpisu  słowa kluczowego LC_COLLATE order w
              pliku definicji ustawień regionalnych (locale).

       EXPR_NEST_MAX - _SC_EXPR_NEST_MAX
              Określa maksymalną liczbę wyrażeń zagnieżdżonych w nawiasach, akceptowaną przez program expr(1).

       LINE_MAX - _SC_LINE_MAX
              Maksymalna  długość  linii  wejściowej  (łącznie  ze  znakiem  końca  linii)  programu  użytkowego
              pochodzącej albo ze standardowego wejścia, albo z pliku.

       RE_DUP_MAX - _SC_RE_DUP_MAX
              Maksymalna  liczna  powtórzonych  wystąpień  wyrażenia  regularnego,  jeżeli  jest używana notacja
              \{m,n\}.

       POSIX2_VERSION - _SC_2_VERSION
              Określa wersję standardu POSIX.2 w formacie YYYYMML.

       POSIX2_C_DEV - _SC_2_C_DEV
              Określa, czy są wspierane użytki zgodne z POSIX.2 służące do rozwijania oprogramowania w języku C.

       POSIX2_FORT_DEV - _SC_2_FORT_DEV
              Określa, czy są  wspierane  użytki  zgodne  z  POSIX.2  służące  do  rozwijania  oprogramowania  w
              Fortranie.

       POSIX2_FORT_RUN - _SC_2_FORT_RUN
              Określa, czy są wspierane programy użytkowe POSIX.2, służące do uruchamia programów w Fortranie.

       _POSIX2_LOCALEDEF - _SC_2_LOCALEDEF
              Określa, czy jest wspierane tworzenie ustawień regionalnych POSIX.2 przez localedef(1) .

       POSIX2_SW_DEV - _SC_2_SW_DEV
              Określa, czy są wspierane użytki zgodne z POSIX.2 służące do rozwijania oprogramowania.

       Poniższe wartości także istnieją, ale może nie być ich w standardzie.

        - _SC_PHYS_PAGES
              Liczba  stron  pamięci fizycznej. Proszę zauważyć, że nie jest możliwe, aby iloczyn tej wartości z
              _SC_PAGESIZE przekroczył (overflow) dopuszczalny zakres wartości liczbowych.

        - _SC_AVPHYS_PAGES
              Liczba obecnie dostępnych stron fizycznej pamięci.

        - _SC_NPROCESSORS_CONF
              Liczba skonfigurowanych procesorów. Zob. też get_nprocs_conf(3).

        - _SC_NPROCESSORS_ONLN
              Liczba obecnie dostępnych procesorów. Zob. też get_nprocs_conf(3).

WARTOŚĆ ZWRACANA

       Zwracaną wartością sysconf() jest jedna z poniższych:

       •  W razie wystąpienia błędu zwracane jest -1 i ustawiane errno wskazując błąd  (na  przykład  na  EINVAL
          wskazujące, że name jest niepoprawna).

       •  Jeśli  name odpowiada jakiemuś ograniczeniu typu maksimum lub minimum, ale nie można określić wartości
          tego  ograniczenia,  to  zwracane  jest  -1  bez  zmieniana  wartości  errno.  (W   celu   odróżnienia
          nieokreślalnego  ograniczenia  od  innego  błędu,  należy  ustawić  errno na zero przed wywołaniem tej
          funcji, i następnie sprawdzić, czy errno jest niezerowe, jeśli funkcja zwróci wartość -1).

       •  Jeśli name odpowiada jakiejś nazwie opcji, to zwracana  jest  wartość  dodatnia,  gdy  ta  opcja  jest
          wspierana, w przeciwnym wypadku zwracane jest -1.

       •  W  przeciwnym  wypadku  zwracana  jest  bieżąca  wartość opcji lub ograniczenia. Wartość ta nie będzie
          bardziej restrykcyjna niż odpowiednia wartość dostępna w pliku  <unistd.h>  lub  <limits.h>  w  czasie
          kompilowania aplikacji.

BŁĘDY

       EINVAL name jest niepoprawne.

ATRYBUTY

       Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).
       ┌──────────────────────────────────────────────────────────┬────────────────────────┬───────────────────┐
       │ InterfejsAtrybutWartość           │
       ├──────────────────────────────────────────────────────────┼────────────────────────┼───────────────────┤
       │ sysconf()                                                │ Bezpieczeństwo wątkowe │ MT-bezpieczne env │
       └──────────────────────────────────────────────────────────┴────────────────────────┴───────────────────┘

STANDARDY

       POSIX.1-2008.

HISTORIA

       POSIX.1-2001.

USTERKI

       Użycie  ARG_MAX  jest skomplikowane, ponieważ nie jest określone, jak dużo przestrzeni argumentów funkcji
       exec(3) jest zabierane przez zmienne środowiskowe użytkownika.

       Niektóre ze zwracanych wartości mogą być olbrzymie, więc nie nadają się do alokowania pamięci.

ZOBACZ TAKŻE

       bc(1), expr(1), getconf(1), locale(1), confstr(3), fpathconf(3), pathconf(3), posixoptions(7)

TŁUMACZENIE

       Autorami polskiego tłumaczenia niniejszej strony podręcznika są:  Robert  Luberda  <robert@debian.org>  i
       Michał Kułach <michal.kulach@gmail.com>

       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 manpages-pl-
       list@lists.sourceforge.net.

Linux man-pages 6.8                              2 maja 2024 r.                                       sysconf(3)