nice(2)

NAZWA
nice - zmienia priorytet procesu

BIBLIOTEKA
Standardowa biblioteka C (libc, -lc)

SKŁADNIA
#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

OPIS
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).

WARTOŚĆ ZWRACANA
Po pomyślnym zakończeniu zwracana jest nowa wartość nice (lecz zob. WERSJE 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.

BŁĘDY

EPERM
    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)).

WERSJE

  Różnice biblioteki C/jądra
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.

STANDARDY
POSIX.1-2024.

HISTORIA
POSIX.1-2001, SVr4, 4.3BSD.

UWAGI
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).

ZOBACZ TAKŻE
nice(1), renice(1), fork(2), getpriority(2), getrlimit(2), setpriority(2), capabilities(7), sched(7)

TŁUMACZENIE
Tłumaczenie niniejszej strony podręcznika: 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 (https://www.gnu.org/licenses/gpl-3.0.html) 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.