diff options
Diffstat (limited to 'man2/getpriority.2')
-rw-r--r-- | man2/getpriority.2 | 177 |
1 files changed, 177 insertions, 0 deletions
diff --git a/man2/getpriority.2 b/man2/getpriority.2 new file mode 100644 index 000000000..3a077c60c --- /dev/null +++ b/man2/getpriority.2 @@ -0,0 +1,177 @@ +.\" Copyright (c) 1980, 1991 The Regents of the University of California. +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)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 <mtk16@ext.canterbury.ac.nz> +.\" Corrected statement under EPERM to clarify privileges required +.\" Modified 2002-06-21 by Michael Kerrisk <mtk16@ext.canterbury.ac.nz> +.\" Clarified meaning of 0 value for 'who' argument +.\" Modified 2004-05-27 by Michael Kerrisk <mtk16@ext.canterbury.ac.nz> +.\" +.TH GETPRIORITY 2 2002-06-21 "BSD Man Page" "Linux Programmer's Manual" +.SH NAME +getpriority, setpriority \- get/set program scheduling priority +.SH SYNOPSIS +.B #include <sys/time.h> +.br +.B #include <sys/resource.h> +.sp +.BI "int getpriority(int " which ", int " who ); +.br +.BI "int setpriority(int " which ", int " who ", int " prio ); +.SH DESCRIPTION +The scheduling priority of the process, process group, or user, as +indicated by +.I which +and +.I who +is obtained with the +.B getpriority +call and set with the +.B setpriority +call. + +The value +.I which +is one of +.BR PRIO_PROCESS , +.BR PRIO_PGRP , +or +.BR PRIO_USER , +and +.I who +is interpreted relative to +.I which +(a process identifier for +.BR PRIO_PROCESS , +process group +identifier for +.BR PRIO_PGRP , +and a user ID for +.BR PRIO_USER ). +A zero value for +.I who +denotes (respectively) the calling process, the process group of the +calling process, or the real user ID of the calling process. +.I Prio +is a value in the range \-20 to 20 (but see the Notes below). +The default priority is 0; +lower priorities cause more favorable scheduling. + +The +.B getpriority +call returns the highest priority (lowest numerical value) +enjoyed by any of the specified processes. The +.B setpriority +call sets the priorities of all of the specified processes +to the specified value. Only the super-user may lower priorities. +.SH "RETURN VALUE" +Since +.B getpriority +can legitimately return the value \-1, it is necessary +to clear the external variable +.I errno +prior to the +call, then check it afterwards to determine +if a \-1 is an error or a legitimate value. +The +.B setpriority +call returns 0 if there is no error, or +\-1 if there is. +.SH ERRORS +.TP +.B EINVAL +.I which +was not one of +.BR PRIO_PROCESS , +.BR PRIO_PGRP , +or +.BR PRIO_USER . +.TP +.B ESRCH +No process was located using the +.I which +and +.I who +values specified. +.PP +In addition to the errors indicated above, +.B setpriority +may fail if: +.TP +.B EPERM +A process was located, but its effective user ID did not match +either the effective or the real user ID of the caller, +and (on Linux systems) the caller did not have the +.B CAP_SYS_NICE +capability. +.TP +.B EACCES +A non super-user attempted to lower a process priority. +.SH NOTES +The details on the condition for EPERM depend on the system. +The above description is what SUSv3 says, and seems to be followed on +all SYSV-like systems. +Linux requires the real or effective user ID of the caller to match +the real user of the process \fIwho\fP (instead of its effective user ID). +All BSD-like systems (SunOS 4.1.3, Ultrix 4.2, +BSD 4.3, FreeBSD 4.3, OpenBSD-2.5, ...) require +the effective user ID of the caller to match +the real or effective user ID of the process \fIwho\fP. +.LP +The actual priority range varies between kernel versions. +Linux before 1.3.36 had -infinity..15. Linux since 1.3.43 has -20..19, +and the system call getpriority returns 40..1 for these values +(since negative numbers are error codes). +The library call converts N into 20-N. +.LP +Including +.I <sys/time.h> +is not required these days, but increases portability. +(Indeed, +.I <sys/resource.h> +defines the +.I rusage +structure with fields of type +.I struct timeval +defined in +.IR <sys/time.h> .) +.SH "CONFORMING TO" +SVr4, 4.4BSD (these function calls first appeared in 4.2BSD). +.SH "SEE ALSO" +.BR nice (1), +.BR fork (2), +.BR capabilities (7), +.BR renice (8) |