const
char
*
getprogname(
void
)
void
setprogname(
const char *name
)
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.
)
is supplied by the invoking process and should not be trusted by
setuid or setgid programs.