Gnulib has two modules for retrieving the name of the currently executing
progname module defines a variable
It contains the name of the currently executing program, on all platforms.
But it cannot be used implicitly: It requires that every
function be modified to invoke
set_program_name (argv) as one
of its first actions.
getprogname module defines a function
It returns the name of the currently executing program, on most platforms.
The advantage of this module is that it can be used without prior
initializations. But it has limitations: In some rare situations, it
cannot determine the name; then it returns
"?" instead. And on
some platforms, it returns a truncated program name.
error function uses the