SETPROCTITLE(3)

SETPROCTITLE(3) | Library Functions Manual | SETPROCTITLE(3)

# NAME

`setproctitle` —
set process title

# LIBRARY

Standard C Library (libc, -lc)

# SYNOPSIS

`#include <stdlib.h>`

void
`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 and the formatted string specified by fmt. If fmt is `NULL`, the colon and formatted string are omitted. The length of a process title is limited to 2048 bytes.

# EXAMPLES

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

    setproctitle(NULL);

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), getprogname(3), printf(3)

# HISTORY

The `setproctitle`() function first appeared in NetBSD 1.0.

# 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 your stack, leading to a possible security hole. This holds true even if you have built the string “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);

April 13, 1994 | NetBSD 9.0