sysconf(3) Library Functions Manual sysconf(3) NAZWA sysconf - pobieranie informacje o konfiguracji w trakcie uruchomienia BIBLIOTEKA Standardowa biblioteka C (libc, -lc) SKLADNIA #include long sysconf(int name); OPIS POSIX pozwala testowac w czasie kompilowania aplikacji lub w czasie jej dzialania, czy pewne opcje sa wspierane lub jakie sa wartosci pewnych konfigurowalnych stalych lub limitow. W czasie kompilacji jest to robione przez zainkludowanie lub i testowanie wartosci pewnych makr. At run time, one can ask for numerical values using the present function sysconf(). One can ask for numerical values that may depend on the filesystem in which a file resides using fpathconf(3) and pathconf(3). One can ask for string values using confstr(3). Wartosci zwracane przez powyzsze funkcje sa stalymi dotyczacymi konfiguracji systemu, ktore nie zmienia sie przez caly czas zycia procesu. For options, typically, there is a constant _POSIX_FOO that may be defined in . If it is undefined, one should ask at run time. If it is defined to -1, then the option is not supported. If it is defined to 0, then relevant functions and headers exist, but one has to ask at run time what degree of support is available. If it is defined to a value other than -1 or 0, then the option is supported. Usually the value (such as 200112L) indicates the year and month of the POSIX revision describing the option. glibc uses the value 1 to indicate support as long as the POSIX revision has not been published yet. The sysconf() argument will be _SC_FOO. For a list of options, see posixoptions(7). Dla zmiennych lub limitow zazwyczaj istnieje stala _COS definiowana w lub _POSIX_COS definiowana w . Stala nie bedzie zdefiniowana, jezeli limit nie jest okreslony. Jezeli stala jest zdefiniowana, to okresla gwarantowany limit, ale w rzeczywistosci moze byc wspierana wartosc wieksza niz wynosi wartosc tej stalej. Jesli aplikacja chce zrobic uzytek ze zmiennych, ktorych wartosci moga sie roznic w zaleznosci od systemu, moze wywolac funkcje sysconf(). Argumentem funkcji sysconf() bedzie _SC_COS. Zmienne POSIX.1 W tabeli ponizej podajemy nazwe zmiennej, nazwe argumentu funkcji sysconf(), uzywanego do odpytania o jej wartosc, oraz krotki opis. Najpierw wartosci zgodne z POSIX.1. ARG_MAX - _SC_ARG_MAX Maksymalna dlugosc argumentow funkcji z rodziny exec(3). Nie moze byc mniejsza niz _POSIX_ARG_MAX (4096). CHILD_MAX - _SC_CHILD_MAX Maksymalna liczba rownoczesnych procesow jednego uzytkownika. Nie moze byc mniejsza niz _POSIX_CHILD_MAX (25). HOST_NAME_MAX - _SC_HOST_NAME_MAX Maksymalna dlugosc nazwy komputera, pomijajac koncowy bajt NULL, zwracana przez gethostname(2). Nie moze byc mniejsza niz _POSIX_HOST_NAME_MAX (255). LOGIN_NAME_MAX - _SC_LOGIN_NAME_MAX Maksymalna dlugosc nazwy uzytkownika, lacznie z koncowym znakiem NULL. Nie moze byc mniejsza niz _POSIX_LOGIN_NAME_MAX (9). NGROUPS_MAX - _SC_NGROUPS_MAX Maksymalna liczba identyfikatorow dodatkowych grup. tykniecia zegara - _SC_CLK_TCK Liczba tykniec zegara na sekunde. Odpowiadajaca jej zmienna jest przestarzala, a byla oczywiscie nazwana CLK_TCK. (Uwaga: makro CLOCKS_PER_SEC nie dostarcza informacji: jego wartosc musi byc rowna 1000000). OPEN_MAX - _SC_OPEN_MAX Maksymalna liczba plikow, ktore proces moze miec otwarte w dowolnym czasie. Nie moze byc mniejsza niz _POSIX_OPEN_MAX (20). PAGESIZE - _SC_PAGESIZE Size of a page in bytes. Must not be less than 1. PAGE_SIZE - _SC_PAGE_SIZE A synonym for PAGESIZE/_SC_PAGESIZE. (Both PAGESIZE and PAGE_SIZE are specified in POSIX.) RE_DUP_MAX - _SC_RE_DUP_MAX Liczba powtorzonych wystapien BRE dopuszczalnych w regexec(3) i regcomp(3). Nie moze byc mniejsza niz _POSIX2_RE_DUP_MAX (255). STREAM_MAX - _SC_STREAM_MAX Maksymalna liczba strumieni, ktora proces moze otworzyc w dowolnym czasie. Jesli jest zdefiniowana, to ma taka sama wartosc jak standardowe makro FOPEN_MAX w C. Nie moze byc mniejsza niz _POSIX_STREAM_MAX (8). SYMLOOP_MAX - _SC_SYMLOOP_MAX Maksymalna liczba dowiazan symbolicznych w sciezce nie powodujaca zwrocenia bledu ELOOP. Nie moze byc mniejsza niz _POSIX_SYMLOOP_MAX (8). TTY_NAME_MAX - _SC_TTY_NAME_MAX Maksymalna dlugosc nazwy urzadzenia terminalowego, wlaczajac koncowy znak NULL. Nie moze byc mniejsza niz _POSIX_TTY_NAME_MAX (9). TZNAME_MAX - _SC_TZNAME_MAX Maksymalna liczba bajtow w nazwie strefy czasowej. Nie moze byc mniejsza niz _POSIX_TZNAME_MAX (6). _POSIX_VERSION - _SC_VERSION Okresla rok i miesiac, w formacie YYYYMML, w ktorym zostal zaakceptowany standard POSIX.1. Na przyklad wartosc 199009L oznacza wersje standardu z wrzesnia 1990 roku. Zmienne POSIX.2 Nastepnie podajemy wartosci POSIX.2 okreslajace limity dla programow uzytkowych. BC_BASE_MAX - _SC_BC_BASE_MAX Okresla maksymalna wartosc obase akceptowana przez program uzytkowy bc(1). BC_DIM_MAX - _SC_BC_DIM_MAX Okresla maksymalna dopuszczalna liczbe elementow w tabelach w programie bc(1). BC_SCALE_MAX - _SC_BC_SCALE_MAX Okresla maksymalna wartosc scale akceptowana przez program uzytkowy bc(1). BC_STRING_MAX - _SC_BC_STRING_MAX Okresla maksymalna dlugosc lancucha znakow akceptowanego przez bc(1). COLL_WEIGHTS_MAX - _SC_COLL_WEIGHTS_MAX indicates the maximum numbers of weights that can be assigned to an entry of the LC_COLLATE order keyword in the locale definition file. EXPR_NEST_MAX - _SC_EXPR_NEST_MAX Okresla maksymalna liczbe wyrazen zagniezdzonych w nawiasach, akceptowana przez program expr(1). LINE_MAX - _SC_LINE_MAX Maksymalna dlugosc linii wejsciowej (lacznie ze znakiem konca linii) programu uzytkowego pochodzacej albo ze standardowego wejscia, albo z pliku. RE_DUP_MAX - _SC_RE_DUP_MAX Maksymalna liczna powtorzonych wystapien wyrazenia regularnego, jezeli jest uzywana notacja \{m,n\}. POSIX2_VERSION - _SC_2_VERSION Okresla wersje standardu POSIX.2 w formacie YYYYMML. POSIX2_C_DEV - _SC_2_C_DEV Okresla, czy sa wspierane uzytki zgodne z POSIX.2 sluzace do rozwijania oprogramowania w jezyku C. POSIX2_FORT_DEV - _SC_2_FORT_DEV Okresla, czy sa wspierane uzytki zgodne z POSIX.2 sluzace do rozwijania oprogramowania w Fortranie. POSIX2_FORT_RUN - _SC_2_FORT_RUN Okresla, czy sa wspierane programy uzytkowe POSIX.2, sluzace do uruchamia programow w Fortranie. _POSIX2_LOCALEDEF - _SC_2_LOCALEDEF indicates whether the POSIX.2 creation of locales via localedef(1) is supported. POSIX2_SW_DEV - _SC_2_SW_DEV Okresla, czy sa wspierane uzytki zgodne z POSIX.2 sluzace do rozwijania oprogramowania. Ponizsze wartosci takze istnieja, ale moze nie byc ich w standardzie. - _SC_PHYS_PAGES Liczba stron pamieci fizycznej. Prosze zauwazyc, ze nie jest mozliwe, aby iloczyn tej wartosci z _SC_PAGESIZE przekroczyl (overflow) dopuszczalny zakres wartosci liczbowych. - _SC_AVPHYS_PAGES Liczba obecnie dostepnych stron fizycznej pamieci. - _SC_NPROCESSORS_CONF The number of processors configured. See also get_nprocs_conf(3). - _SC_NPROCESSORS_ONLN The number of processors currently online (available). See also get_nprocs_conf(3). WARTOSC ZWRACANA The return value of sysconf() is one of the following: o On error, -1 is returned and errno is set to indicate the error (for example, EINVAL, indicating that name is invalid). o If name corresponds to a maximum or minimum limit, and that limit is indeterminate, -1 is returned and errno is not changed. (To distinguish an indeterminate limit from an error, set errno to zero before the call, and then check whether errno is nonzero when -1 is returned.) o If name corresponds to an option, a positive value is returned if the option is supported, and -1 is returned if the option is not supported. o Otherwise, the current value of the option or limit is returned. This value will not be more restrictive than the corresponding value that was described to the application in or when the application was compiled. BLEDY EINVAL name is invalid. ATRYBUTY Informacje o pojeciach uzywanych w tym rozdziale mozna znalezc w podreczniku attributes(7). +-----------------------+--------------------------+-------------------+ |Interfejs | Atrybut | Wartosc | +-----------------------+--------------------------+-------------------+ |sysconf() | Bezpieczenstwo watkowe | MT-bezpieczne env | +-----------------------+--------------------------+-------------------+ STANDARDY POSIX.1-2008. HISTORIA POSIX.1-2001. USTERKI Uzycie ARG_MAX jest skomplikowane, poniewaz nie jest okreslone, jak duzo przestrzeni argumentow funkcji exec(3) jest zabierane przez zmienne srodowiskowe uzytkownika. Niektore zwracane wartosci moga byc duze; nie sa one odpowiednie do przydzielania pamieci. ZOBACZ TAKZE bc(1), expr(1), getconf(1), locale(1), confstr(3), fpathconf(3), pathconf(3), posixoptions(7) TLUMACZENIE Autorami polskiego tlumaczenia niniejszej strony podrecznika sa: 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.06 31 pazdziernika 2023 r. sysconf(3)