The
setproctitle ();
library routine sets the process title that appears on the
ps(1)
command.
The title is set from the executable's name, followed by the
result of a
printf(3)
style expansion of the arguments as specified by the
fmt
argument.
If the
fmt
argument begins with a
``-''
character, the executable's name is skipped.
If
fmt
is NULL, the process title is restored.
EXAMPLES
To set the title on a daemon to indicate its activity:
The
setproctitle ();
function
is implicitly non-standard.
Other methods of causing the
ps(1)
command line to change, including copying over the argv[0] string are
also implicitly non-portable.
It is preferable to use an operating system
supplied
setproctitle ();
if present.
Unfortunately, it is possible that there are other calling conventions
to other versions of
setproctitle (,);
although none have been found by the author as yet.
This is believed to be
the predominant convention.
It is thought that the implementation is compatible with other systems,
including
Nx and
Bs x .
HISTORY
The
setproctitle ();
function
first appeared in
Fx 2.2 .
Other operating systems have
similar functions.
AUTHORS
An -nosplit
An Peter Wemm Aq peter@FreeBSD.org
stole the idea from the
Sendmail 8.7.3
source code by
An Eric Allman Aq eric@sendmail.org .
BUGS
Never pass a string with user-supplied data as a format without using
`%s'
An attacker can put format specifiers in the string to mangle your stack,
leading to a possible security hole.
This holds true even if the string was built using a function like
snprintf (,);
as the resulting string may still contain user-supplied conversion specifiers
for later interpolation by
setproctitle (.);