summaryrefslogtreecommitdiffstats
path: root/man2/getpriority.2
diff options
context:
space:
mode:
Diffstat (limited to 'man2/getpriority.2')
-rw-r--r--man2/getpriority.2177
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)