GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
GETPROGNAME(3) FreeBSD Library Functions Manual GETPROGNAME(3)

getprogname, setprogname
get or set the program name

Standard C Library (libc, -lc)

#include <stdlib.h>

const char *
getprogname(void);

void
setprogname(const char *progname);

The getprogname() and setprogname() functions manipulate the name of the current program. They are used by error-reporting routines to produce 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. Programs 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.

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

err(3), setproctitle(3)

These functions first appeared in NetBSD 1.6, and made their way into FreeBSD 4.4.
April 18, 2021 FreeBSD 13.1-RELEASE

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.