functions manipulate the name of the current program.
They are used by error-reporting routines to produce
function returns the name of the program.
If the name has not been set yet, it will return
function sets the name of the program to be the last component of the
Since a pointer to the given string is kept as the program name,
it should not be modified for the rest of the programs lifetime.
the name of the program is set by the start-up code that is run before
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.
allows the aforementioned library to learn the program name without
modifications to the start-up code.