Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SETPROCTITLE(3)	       FreeBSD Library Functions Manual	       SETPROCTITLE(3)

NAME
     setproctitle setproctitle_fast -- set process title

SYNOPSIS
     #include <unistd.h>

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

     void
     setproctitle_fast(const char *fmt,	...);

DESCRIPTION
     The setproctitle()	library	routine	sets the process title that appears on
     the ps(1) command.	 The setproctitle_fast() variant is optimized for high
     frequency updates,	but may	make the ps(1) command slightly	slower by not
     updating the kernel cache of the program arguments.

     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	argu-
     ment.  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), setprogname(3), kvm(3), kvm_getargv(3), printf(3)

STANDARDS
     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 NetBSD and BSD/OS.

HISTORY
     The setproctitle()	function first appeared	in FreeBSD 2.2.	 The
     setproctitle_fast() function first	appeared in FreeBSD 12.	 Other operat-
     ing systems have similar functions.

AUTHORS
     Peter Wemm	<peter@FreeBSD.org> stole the idea from	the Sendmail 8.7.3
     source code by Eric Allman	<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().

     Always use	the proper secure idiom:

	   setproctitle("%s", string);

FreeBSD	13.0		       November	28, 2022		  FreeBSD 13.0

NAME | SYNOPSIS | DESCRIPTION | EXAMPLES | SEE ALSO | STANDARDS | HISTORY | AUTHORS | BUGS

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=setproctitle&sektion=3&manpath=FreeBSD+13.2-RELEASE+and+Ports>

home | help