NAME
getprogname
,
setprogname
—
get/set the name of the current
program
LIBRARY
library “libc”
SYNOPSIS
#include
<stdlib.h>
const char *
getprogname
(void);
void
setprogname
(const
char *name);
DESCRIPTION
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
() explicitly has no effect. However,
portable programs that wish to use getprogname
()
should call setprogname
() from
main
(). On operating systems where
getprogname
() and
setprogname
() are implemented via a portability
library, this call is needed to make the name available.
SEE ALSO
HISTORY
The getprogname
and
setprogname
function calls appeared in
NetBSD 1.6.
RESTRICTIONS
The string returned by getprogname
() is
supplied by the invoking process and should not be trusted by setuid or
setgid programs.