While in Privileged mode, your program can look in system tables, modify main memory, and open privileged database files. Of course, it can also wipe out data that does not belong to you and cause system aborts. Only give PM capability to people you trust as much as the System Manager (on MPE, the System Manager can give himself PM capability anyway).
Programs can be either permanently PM or temporarily PM.
Permanent PM is specified for a program thorough a compiler command such as
$CONTROL PRIVILEGED
or a language option such as
OPTION PRIVILEGED
.
Temporary PM is attained by calling the
GETPRIVMODE intrinsic and is given back with GETUSERMODE
or by exiting
from the current procedure.
Do not call GETUSERMODE in a library or utility routine to
be used by many programs. If the caller happens to
be in PM already, your exit will then cause a program abort.
Privileged File
An MPE file with a negative filecode is a privileged file.
It cannot be opened except by a program that is running in
Privileged mode. IMAGE/SQL databases, for example, are composed of privileged
files.