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

  
 
  

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 produce con-
     sistent 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 com-
     ponent  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.  Programs that
     desire  maximum portability should still call it; on another operating sys-
     tem, 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 difference
     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 15.1			 April 18, 2021 		  GETPROGNAME(3)

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

home | help