.\" -*- coding: UTF-8 -*-
.\" Copyright (c) 1980, 1991 The Regents of the University of California.
.\" All rights reserved.
.\"
.\" SPDX-License-Identifier: BSD-4-Clause-UC
.\"
.\"     @(#)getpriority.2	6.9 (Berkeley) 3/10/91
.\"
.\" Modified 1993-07-24 by Rik Faith <faith@cs.unc.edu>
.\" Modified 1996-07-01 by Andries Brouwer <aeb@cwi.nl>
.\" Modified 1996-11-06 by Eric S. Raymond <esr@thyrsus.com>
.\" Modified 2001-10-21 by Michael Kerrisk <mtk.manpages@gmail.com>
.\"    Corrected statement under EPERM to clarify privileges required
.\" Modified 2002-06-21 by Michael Kerrisk <mtk.manpages@gmail.com>
.\"    Clarified meaning of 0 value for 'who' argument
.\" Modified 2004-05-27 by Michael Kerrisk <mtk.manpages@gmail.com>
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH getpriority 2 "4 grudnia 2022 r." "Linux man\-pages 6.03" 
.SH NAZWA
getpriority, setpriority \- pobiera/ustawia priorytet programu podczas
szeregowania zadań
.SH BIBLIOTEKA
Standardowa biblioteka C (\fIlibc\fP, \fI\-lc\fP)
.SH SKŁADNIA
.nf
\fB#include <sys/resource.h>\fP
.PP
\fBint getpriority(int \fP\fIwhich\fP\fB, id_t \fP\fIwho\fP\fB);\fP
\fBint setpriority(int \fP\fIwhich\fP\fB, id_t \fP\fIwho\fP\fB, int \fP\fIprio\fP\fB);\fP
.fi
.SH OPIS
Priorytet procesu, grupy procesów, lub użytkownika podczas szeregowania
zadań, wskazywany przez \fIwhich\fP i \fIwho\fP jest uzyskiwany za pomocą
wywołania \fBgetpriority()\fP, a ustawiany za pomocą wywołania
\fBsetpriority\fP. Atrybut procesu, na którym działają niniejsze wywołania
systemu jest tym samym atrybutem (znanym również jako wartość
\[Bq]nice\[rq]), na którym działa \fBnice\fP(2).
.PP
Wartość \fIwhich\fP jest jedną z: \fBPRIO_PROCESS\fP, \fBPRIO_PGRP\fP lub
\fBPRIO_USER\fP, a \fIwho\fP jest interpretowane względem \fIwhich\fP (identyfikator
procesu dla \fBPRIO_PROCESS\fP, identyfikator grupy procesów dla \fBPRIO_PGRP\fP i
identyfikator użytkownika dla \fBPRIO_USER\fP). Zerowa wartość \fIwho\fP określa
(odpowiednio) proces wywołujący, grupę procesów procesu wywołującego lub
rzeczywisty identyfikator użytkownika procesu wywołującego.
.PP
\fIprio\fP jest wartością z zakresu od \-20 do 19 (lecz zob. UWAGI poniżej),
gdzie \-20 jest najwyższym priorytetem, a 19 jest najniższym
priorytetem. Próby ustawienia priorytetu spoza tego przedziału, są po cichu
ograniczane do obowiązującego przedziału. Domyślnym priorytetem jest 0;
mniejsze wartości dają procesowy wyższy priorytet podczas szeregowania
zadań.
.PP
Wywołanie \fBgetpriority\fP() zwraca najwyższy priorytet (najniższą wartość
numeryczną), spośród posiadanych przez którykolwiek z podanych
procesów. Wywołanie \fBsetpriority\fP() ustawia priorytety wszystkich podanych
procesów na wskazaną wartość.
.PP
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 \fBRLIMIT_NICE\fP; więcej szczegółów w podręczniku
\fBgetrlimit\fP(2).
.SH "WARTOŚĆ ZWRACANA"
Po pomyślnym zakończeniu \fBgetpriority\fP() zwraca wartość nice wywołującego
wątku, która może być liczbą ujemną. Po błędzie zwraca \-1 i ustawia \fIerrno\fP
wskazując błąd.
.PP
Ze względu na fakt, że pomyślne wywołanie do \fBgetpriority\fP() może zwrócić
poprawną wartość \-1, konieczne jest wyczyszczenie \fIerrno\fP przed wywołaniem,
a następnie sprawdzenie \fIerrno\fP po nim, aby określić czy wartość \-1 jest
błędem, czy poprawną wartością nice.
.PP
\fBsetpriority\fP() zwraca 0 po pomyślnym zakończeniu. W przypadku błędu zwraca
\-1 i ustawia \fIerrno\fP wskazując jego rodzaj.
.SH BŁĘDY
.TP 
\fBEACCES\fP
Wywołujący próbował obniżyć wartość nice (tj. ustawić wyższy priorytet
procesu), ale nie posiadał odpowiednich przywilejów (na Linuksie: nie
posiadał przywileju (ang. capability) \fBCAP_SYS_NICE\fP).
.TP 
\fBEINVAL\fP
\fIwhich\fP nie był jednym z \fBPRIO_PROCESS\fP, \fBPRIO_PGRP\fP lub \fBPRIO_USER\fP.
.TP 
\fBEPERM\fP
Proces został zlokalizowany, ale jego efektywny identyfikator użytkownika
nie pasował ani do efektywnego, ani do rzeczywistego identyfikatora
użytkownika wywołującego i nie był on uprzywilejowany (na Linuksie: nie
posiadał przywileju \fBCAP_SYS_NICE\fP). Zob. jednakże UWAGI poniżej.
.TP 
\fBESRCH\fP
Nie zlokalizowano żadnego procesu przy użyciu podanych wartości \fIwhich\fP i
\fIwho\fP.
.SH STANDARDY
POSIX.1\-2001, POSIX.1\-2008, SVr4, 4.4BSD (funkcje te pierwotnie pojawiły się
w 4.2BSD).
.SH UWAGI
Więcej informacji o wartości nice opisano w podręczniku \fBsched\fP(7).
.PP
\fIUwaga\fP: w związku z dodaniem funkcjonalności \[Bq]autogroup\[rq] 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 \fBsched\fP(7).
.PP
Proces potomny utworzony za pomocą \fBfork\fP(2) dziedziczy wartość nice
swojego procesu macierzystego. Wartość nice jest zachowywana przez
\fBexecve\fP(2).
.PP
.\"
Szczegółowe warunki wystąpienia błędu \fBEPERM\fP zależą od systemu. Powyżej
opisano co mówi na ten temat POSIX.1\-2001, z którym wydają się być zgodne
wszystkie systemy typu System\ V. Jądra Linux przed Linuksem 2.6.12
wymagały, aby rzeczywisty lub efektywny ID użytkownika wywołującego zgadzał
się z rzeczywistym użytkownikiem procesu \fIwho\fP (zamiast z jego efektywnym
ID użytkownika). Linux 2.6.12 i późniejsze wymaga, aby efektywny
identyfikator użytkownika wywołującego zgadzał się z rzeczywistym lub
efektywnym ID użytkownika procesu \fIwho\fP. Wszystkie systemy typu BSD (SunOS
4.1.3, Ultrix 4.2, 4.3BSD, FreeBSD 4.3, OpenBSD\-2.5, ...) zachowują się w
ten sam sposób jak Linux 2.6.12 i późniejsze.
.SS "Różnice biblioteki C/jądra"
Wywołanie systemowe getpriority zwraca wartości nice przetłumaczone na
zakres 40..1, ponieważ wartość negatywna zostałaby zinterpretowana jako
błąd. Funkcja opakowująca glibc dla \fBgetpriority\fP() tłumaczy tą wartość z
powrotem, zgodnie z wzorem \fIunice\~=\~20\~\-\~knice\fP (zatem zakres 40..1
zwracany przez jądro powraca do zakresu \-20..19 widzianego przez przestrzeń
użytkownika).
.SH USTERKI
Zgodnie z POSIX, wartość nice jest ustawieniem przypisanym procesowi. Jednak
w aktualnej implementacji Linuksa/NPTL wątków POSIX, wartość nice jest
atrybutem przypisanym wątkowi: różne wątki tego samego procesu mogą mieć
różne wartości nice. Przenośne aplikacje powinny unikać polegania na
zachowaniu Linuksa, które może w przyszłości ulec zmianie na zgodne ze
standardami.
.SH "ZOBACZ TAKŻE"
\fBnice\fP(1), \fBrenice\fP(1), \fBfork\fP(2), \fBcapabilities\fP(7), \fBsched\fP(7)
.PP
\fIDocumentation/scheduler/sched\-nice\-design.txt\fP w drzewie źródeł jądra
Linux (od Linuksa 2.6.23)
.PP
.SH TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika są:
Przemek Borys <pborys@dione.ids.pl>,
Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl>
i
Michał Kułach <michal.kulach@gmail.com>
.
.PP
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach
licencji można uzyskać zapoznając się z
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License w wersji 3
.UE
lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
.PP
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy
dyskusyjnej
.MT manpages-pl-list@lists.sourceforge.net
.ME .
