Provided by:
manpages-pl-dev_20060617-1_all 
NAZWA
sysconf - pobiera informacje o konfiguracji
SKŁADNIA
#include <unistd.h>
long sysconf(int name);
OPIS
POSIX pozwala aplikacji testować w czasie kompilowania lub działania,
czy pewne opcje są wspierane lub jakie są wartości pewnych
konfigurowalnych stałych lub limitów.
W czasie kompilacjie jest to robione przez zainkludowanie <unistd.h>
i/lub <limits.h> i testowanie wartości pewnych makr.
W czasie działania programu, można odpytać o wartości liczbowe,
używająć obecnej funkcji sysconf(). Wartości liczbowe dotyczące systemu
plików w którym jest umieszczony dany plik można uzyskać wywołując
funkcje fpathconf(3) i pathconf(3). Wartości będące łańcuchami znaków
zwraca funkcja confstr(3)
Wartości zwracane przez te 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ć wspierane więcej 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
Podajemy nazwę zmiennej,nazwę parametru 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(). 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 hosta, pomijając końcowy bajt NUL,
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
NUL. Nie może być mniejsza niż _POSIX_LOGIN_NAME_MAX (9).
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ć mniejsza niż 1. (Niektóre
systemy używają zamiast tego 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
Maksymalna liczba dowiązań symbolicznych w ścieżce nie
powodująca zwrócenia 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 NUL. 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 1990r.
ZMIENNE POSIX.2
Następnie 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.
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.
Te 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_PAGE_SIZE przekroczył
dopuszczalny zakres wartości liczbowych (overflow)
- _SC_AVPHYS_PAGES
Liczba obecnie dostępnych stron fizycznej pamięci.
WARTOŚĆ ZWRACANA
Jeżeli argument name jest niepoprawny, to zwracane jest -1, a errno
jest ustawiane na EINVAL. W przeciwnym wypadku wartością zwracaną jest
wartość zasobu systemowego, a wartość errno nie jst zmieniana. W
przypadku opcji zwracana jest wartość dodatnia, jeśli opcja jest
dostępna, a -1, jeśli nie jest. W przypadku limitów -1 oznacza, że
limit nie został określony.
ZGODNE Z
POSIX.1.
BŁĘDY
Użycie ARG_MAX jest skomplikowane, ponieważ nie jest określone, jak
dużo przestrzeni argumentów funkcji exec() jest zabierana przez zmienne
środowiskowe użytkownika.
Niektóre zwracane wartości mogą być duże; nie są one odpowiednie do
przydzielania pamięci.
ZOBACZ TAKŻE
bc(1), expr(1), locale(1), fpathconf(3), pathconf(3), posixoptions(7)