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);
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
- 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-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 6.9.1 |