Scroll to navigation

nice(2) System Calls Manual 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. 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.

BŁĘDY

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-2008.

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

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 (niewydane)