NAZWA¶
sysconf - pobieranie informacje o konfiguracji
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ć, 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 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).
 
  - 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. (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 - _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.
 
  - 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_PAGE_SIZE 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.
 
  - 
  
   - _SC_NPROCESSORS_ONLN 
  - Liczba obecnie dostępnych procesorów.
 
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 jest 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-2001.
BŁĘDY¶
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 zwracane wartości mogą być duże; nie są
  one odpowiednie do przydzielania pamięci.
ZOBACZ TAKŻE¶
bc(1), 
expr(1), 
getconf(1), 
locale(1),
  
fpathconf(3), 
pathconf(3), 
posixoptions(7)
O STRONIE¶
Angielska wersja tej strony pochodzi z wydania 3.40 projektu Linux
  
man-pages. Opis projektu oraz informacje dotyczące zgłaszania
  błędów można znaleźć pod adresem
  
http://www.kernel.org/doc/man-pages/.
TŁUMACZENIE¶
Autorem polskiego tłumaczenia niniejszej strony podręcznika man jest
  Robert Luberda <robert@debian.org>.
Polskie tłumaczenie jest częścią projektu manpages-pl;
  uwagi, pomoc, zgłaszanie błędów na stronie
  
http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją 
  3.40 oryginału.