setproctitle(3)

SETPROCTITLE(3) Library Functions Manual SETPROCTITLE(3)

NAME

setproctitleset process title

SYNOPSIS

#include <setproctitle.h>

int
setproctitle(const char *fmt, ...);

DESCRIPTION

The setproctitle() function sets the invoking process's title. The process title is set to the last component of the program name, followed by a colon, a single space, and the formatted string specified by fmt. If fmt is NULL, the colon and formatted string are omitted.

EXAMPLES

Set the process title to the program name, with no further information:

setproctitle(0);

Set the process title to the program name, an informational string, and the process ID:

setproctitle("foo! (%d)", getpid());

SEE ALSO

ps(1), w(1), printf(3)

HISTORY

The setproctitle() function first appeared in NetBSD 0.9A. The setproctitle() library first appeared in

AUTHORS

The setproctitle library was written for the ALT GNU/Linux by Dmitry V. Levin.
This manual page was written for the NetBSD Project by Christopher G. Demetriou.

CAVEATS

It is important never to pass a string with user-supplied data as a format without using ‘%s’. An attacker can put format specifiers in the string to mangle the stack, leading to a possible security hole. This holds true even if the string has been built “by hand” using a function like snprintf(), as the resulting string may still contain user-supplied conversion specifiers for later interpolation by setproctitle().

Always be sure to use the proper secure idiom:

setproctitle("%s", string);

The setproctitle() function clobbers the argv (array of argument strings passed to the process). If this data is going to be used after first setproctitle() invocation, it should be saved in another memory location.

March 20, 2007 ALT GNU/Linux .