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

FreeBSD Manual Pages

  
 
  

home | help
GETPROGNAME(3)		    Library Functions Manual		GETPROGNAME(3)

NAME
       getprogname, setprogname	-- get or set the program name

LIBRARY
       Standard	C Library (libc, -lc)

SYNOPSIS
       #include	<stdlib.h>

       const char *
       getprogname(void);

       void
       setprogname(const char *progname);

DESCRIPTION
       The  getprogname()  and	setprogname() functions	manipulate the name of
       the current program.  They are used by error-reporting routines to pro-
       duce consistent output.

       The getprogname() function returns the name of  the  program.   If  the
       name has	not been set yet, it will return NULL.

       The  setprogname() function sets	the name of the	program	to be the last
       component of the	progname argument.   Since  a  pointer	to  the	 given
       string  is  kept	as the program name, it	should not be modified for the
       rest of the program's lifetime.

       In FreeBSD, the name of the program is set by the start-up code that is
       run before main(); thus,	running	setprogname() is not necessary.	  Pro-
       grams  that desire maximum portability should still call	it; on another
       operating system, these functions may be	implemented in	a  portability
       library.	  Calling  setprogname()  allows the aforementioned library to
       learn the program name without modifications to the start-up code.

EXAMPLES
       The following example presents a	simple program,	which shows  the  dif-
       ference between getprogname() and argv[0].

	     #include <stdio.h>
	     #include <stdlib.h>

	     int
	     main(int argc, char** argv)
	     {
		     printf("getprogname(): %s\n", getprogname());
		     printf("argv[0]: %s\n", argv[0]);
		     return (0);
	     }

       When  compiled  and  executed  (e.g., with `./a.out') the output	of the
       program is going	to look	like this:

	     getprogname(): a.out
	     argv[0]: ./a.out

SEE ALSO
       err(3), setproctitle(3)

HISTORY
       These functions first appeared in NetBSD	1.6, and made their  way  into
       FreeBSD 4.4.

FreeBSD	13.2			April 18, 2021			GETPROGNAME(3)

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | EXAMPLES | SEE ALSO | HISTORY

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

home | help