progname and getprogname
========================

Gnulib has two modules for retrieving the name of the currently executing program: progname and getprogname.

The progname module defines a variable program_name. It contains the name of the currently executing program, on all platforms. But it cannot be used implicitly:  It requires that every main function be modified to invoke set_program_name (argv[0]) as one of its first actions.

The getprogname module defines a function getprogname(). 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.

The error function uses the getprogname module.