Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.


GETPROGNAME(3)             Library Functions Manual             GETPROGNAME(3)

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.

NetBSD 10.99                     May 21, 2011                     NetBSD 10.99