getprogname, setprogname - get/set the name of the current program
Standard C Library (libc, -lc)
#include <stdlib.h>
const char *
getprogname(void);
void
setprogname(const char *name);
These utility functions get and set the current program's name as used by
various error-reporting functions.
getprogname() returns the name of the current program. This function is
typically useful when generating error messages or other diagnostic output.
If the program name has not been set, getprogname() will return
NULL.
setprogname() sets the name of the current program to be the last pathname
component of the name argument. It should be invoked at the start
of the program, using the argv[0] passed into the program's main() function.
A pointer into the string pointed to by the name argument is kept
as the program name. Therefore, the string pointed to by name should not
be modified during the rest of the program's operation.
A program's name can only be set once, and in NetBSD that is actually
done by program start-up code that is run before main() is called.
Therefore, in NetBSD, calling setprogname() from main() has no effect.
However, it does serve to increase the portability of the program: on
other operating systems, getprogname() and setprogname() may be implemented
by a portability library, and a call to setprogname() allows that
library to know the program name without modifications to that system's
program start-up code.
err(3), setproctitle(3)
The getprogname and setprogname function calls appeared in NetBSD 1.6.
BSD February 11, 2001 BSD
[ Back ] |