rtprio(2)

NAME

rtprio - examine or modify a process realtime or idle prior
ity

LIBRARY

Standard C Library (libc, -lc)

SYNOPSIS

#include <sys/types.h>
#include <sys/rtprio.h>
int
rtprio(int function, pid_t pid, struct rtprio *rtp);

DESCRIPTION

The rtprio() system call is used to lookup or change the re
altime or idle
priority of a process.
The function argument specifies the operation to be per
formed.
RTP_LOOKUP to lookup the current priority, and RTP_SET to
set the priority. The pid argument specifies the process to be used, 0
for the current process.
The *rtp argument is a pointer to a struct rtprio which is
used to specify the priority and priority type. This structure has the
following
form:
struct rtprio {
u_short type;
u_short prio;
};
The value of the type field may be RTP_PRIO_REALTIME for re
altime priorities, RTP_PRIO_NORMAL for normal priorities, and
RTP_PRIO_IDLE for idle
priorities. The priority specified by the prio field ranges
between 0
and RTP_PRIO_MAX (usually 31). 0 is the highest possible
priority.
Realtime and idle priority is inherited through fork() and
exec().
A realtime process can only be preempted by a process of
equal or higher
priority, or by an interrupt; idle priority processes will
run only when
no other real/normal priority process is runnable. Higher
real/idle priority processes preempt lower real/idle priority processes.
Processes of
equal real/idle priority are run round-robin.

RETURN VALUES

The rtprio() function returns the value 0 if successful;
otherwise the
value -1 is returned and the global variable errno is set to
indicate the
error.

ERRORS

The rtprio() system call will fail if

[EINVAL] The specified prio was out of range.

[EPERM] The calling process is not allowed to set
the realtime
priority. Only root is allowed to change
the realtime
priority of any process, and non-root may
only change
the idle priority of the current process.
[ESRCH] The specified process was not found.

SEE ALSO

nice(1), ps(1), rtprio(1), setpriority(2), nice(3),
renice(8)

AUTHORS

The original author was Henrik Vestergaard Draboel <hvd@ter
ry.ping.dk>.
This implementation in FreeBSD was substantially rewritten
by David
Greenman.
BSD July 23, 1994
Copyright © 2010-2025 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout