Provided by: manpages-pl-dev_4.26.0-1_all 

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).
┌──────────────────────────────────────────────────────────┬────────────────────────┬───────────────────┐
│ Interfejs │ Atrybut │ Wartość │
├──────────────────────────────────────────────────────────┼────────────────────────┼───────────────────┤
│ 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.9.1 15 czerwca 2024 r. sysconf(3)