+Normally
+.B ps
+sorts its output by process ID.
+The
+.B \-m
+option tells
+.B ps
+to sort by memory usage, while the
+.B \-r
+option tells
+.B ps
+to sort by current cpu usage.
+The
+.B \-v
+and
+.B \-u
+formats imply
+.B \-m
+and
+.B \-r
+respectively.
+If more than one sort option is used,
+the last one given overrides the others
+(thus
+.B ps \-um
+sorts by memory usage rather than %cpu).
+The
+.B \-S
+and
+.B \-C
+flags alter the calculation of process times and cpu percentage:
+.B \-S
+(``sum'') charges all exited children to their parent processes, and
+.B \-C
+(``cpu'') uses a ``raw'' cpu calculation that ignores ``resident'' time
+(usually this has no effect anyway).
+.PP
+Since there are so many things that can be printed (66, at last count),
+.B ps
+selects which process objects to print via a ``format string''.
+This is simply a list of names to print,
+separated by white space or commas.
+Each name can be listed at most once.
+The
+.B \-o
+and
+.B \-O
+options use the given format,
+and the ``standard'' output formats are simply canned strings
+as shown in the following table.
+The first entry is the default format,
+used only if no other format is given:
+.TP
+(default)
+pid tname state cputime comm
+.TP
+.B \-l
+uid pid ppid cp pri nice vsize rss wchan state tname cputime comm
+.TP
+.B \-v
+pid tt state time sl re pagein vsize rss lim tsiz trs pcpu pmem comm
+.TP
+.B \-u
+uname pid pcpu pmem vsize rss tt state start time comm
+.TP
+.B \-j
+user pid ppid pgid sess jobc state tname cputime comm
+.TP
+.B \-s
+uid pid sig sigmask sigignore sigcatch stat tname comm
+.PP
+The
+.B \-o
+flag adds the given string to the current format;
+.B \-O
+adds ``pid'', then the given format, then ``state tt time command''.
+Effectively,
+.B \-O
+inserts its argument into the default format
+after the process ID.
+.PP
+A complete list of names can be obtained via
+.BR "ps -L" .
+.PP
+For backwards compatibility,
+the first argument need not be prefixed by a ``-''.
+A second argument, if any, is taken
+to be the file containing the system's namelist.
+Otherwise, /vmunix is used.
+A third argument, if any, tells