NAME
getprogname,
setprogname —
get/set the name of the current program
LIBRARY
Standard C Library (libc, -lc)
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
err(3),
setproctitle(3)
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.