nice(2) System Calls Manual nice(2)

nice - zmienia priorytet procesu

Standardowa biblioteka C (libc, -lc)

#include <unistd.h>
int nice(int inc);
Wymagane ustawienia makr biblioteki glibc (patrz feature_test_macros(7)):

nice():

    _XOPEN_SOURCE
        || /* Od glibc 2.19: */ _DEFAULT_SOURCE
        || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

nice() dodaje inc do wartości „nice” wywołującego wątku (wysoka wartość „nice” oznacza niski priorytet).

Zakres wartości nice wynosi od +19 (niski priorytet) do -20 (wysoki priorytet). Próby ustawienia wartości nice spoza zakresu, są do niego ograniczane.

Tradycyjnie, jedynie proces uprzywilejowany mógł zmniejszyć wartość nice (tj. ustawić wyższy priorytet). Jednakże od Linuksa 2.6.12, proces nieuprzywilejowany może zmniejszyć wartość nice procesu docelowego, mającego odpowiedni miękki limit RLIMIT_NICE; więcej szczegółów w podręczniku getrlimit(2).

Po pomyślnym zakończeniu zwracana jest nowa wartość nice (lecz zob. UWAGI poniżej). W przypadku błędu zwracane jest -1 i ustawiane errno wskazując błąd.

Pomyślne wywołanie może zwrócić prawidłową wartość -1. Do wykrycia błędu, należy ustawić errno na 0 przed wywołaniem i sprawdzić czy jest niezerowa, jeśli nice() zwróci -1.

Proces wywołujący próbował zwiększyć swój priorytet, podając ujemne inc, lecz nie był wystarczająco uprzywilejowany. W Linuksie wymagany jest przywilej (ang. capability) CAP_SYS_NICE (zob. jednak opis limitu zasobów RLIMIT_NICE w podręczniku setrlimit(2)).

POSIX.1 określa, że nice() powinno zwracać nową wartość nice. Surowe linuksowe wywołanie systemowe zwraca jednak w przypadku powodzenia 0. Podobnie, funkcja opakowująca nice() z glibc 2.2.3 i wcześniejszych, również zwraca 0 przy powodzeniu.

Od glibc 2.2.4, funkcja opakowująca nice() udostępniana przez glibc jest zgodna z POSIX.1, wywołując getpriority(2) do pozyskania nowej wartości nice, a następnie zwracając ją wywołującemu.

POSIX.1-2008.

POSIX.1-2001, SVr4, 4.3BSD.

Więcej informacji o wartości nice opisano w podręczniku sched(7).

Uwaga: w związku z dodaniem funkcjonalności „autogroup” w Linuksie 2.6.38, wartość nice w wielu przypadkach nie zachowuje się w swój tradycyjny sposób. Więcej informacji w podręczniku sched(7).

nice(1), renice(1), fork(2), getpriority(2), getrlimit(2), setpriority(2), capabilities(7), sched(7)

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl> 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.

2 maja 2024 r. Linux man-pages 6.8