SETPROCTITLE
Section: Misc. Reference Manual Pages (3bsd)
Page Index
BSD mandoc
NAME
setproctitle
- set process title
LIBRARY
Lb libbsd
SYNOPSIS
In sys/types.h
In unistd.h
(See
libbsd(7)
for include usage.)
Ft void
Fn setproctitle_init int argc char *argv[] char *envp[]
Ft void
Fn setproctitle const char *fmt ...
DESCRIPTION
The
Fn setproctitle
library routine sets the process title that appears on the
ps(1)
command.
The
Fn setproctitle_init
library routine only needs to be called (before any call to
Fn setproctitle
and with
Fn main
arguments), if the automatic constructor support has not
been linked in through the libbsd-ctor pkg-config file.
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:
setproctitle("talking to %s", inet_ntoa(addr));
SEE ALSO
ps(1),
w(1),
kvm(3),
kvm_getargv3,
printf(3)
STANDARDS
The
Fn 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
Fn setproctitle
if present.
Unfortunately, it is possible that there are other calling conventions
to other versions of
Fn 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
Fn setproctitle
function
first appeared in
Fx 2.2 .
Other operating systems have
similar functions.
The
Fn setproctitle_init
function is a libbsd extension not present on the BSDs, avoid using it
in portable code.
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
Fn snprintf ,
as the resulting string may still contain user-supplied conversion specifiers
for later interpolation by
Fn setproctitle .
Always use the proper secure idiom:
setproctitle("%s", string);