---
name: "explain_program_name"
section: "3"
platform: "linux"
package: "libexplain-dev"
version: "1.4.D001-16"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/explain_program_name"
---

# explain\_program\_name(3)

manipulate the program name

## NAME

explain\_program\_name - manipulate the program name

## SYNOPSIS

\#include \<libexplain/libexplain.h\>

const char \*explain\_program\_name\_get(void);\
 void explain\_program\_name\_set(const char \*name);\
 void explain\_program\_name\_assemble(int yesno);

## DESCRIPTION

These functions may be used to manipulate libexplain's idea of the command name of the current process, and whether or not that name is included in error messages.

### explain\_program\_name\_get

const char \*explain\_program\_name\_get(void);

The **explain\_program\_name\_get** function may be used to obtain the command name of the calling process.  Depending on how capable `/proc` is on your system, or, failing that, how capable *lsof*(1) is on your system, this may or may not produce a sensible result.  It works well on Linux.

- Returns:

  pointer to string containing the command name (no slashes) of the calling process.

### explain\_program\_name\_set

void explain\_program\_name\_set(const char \*name);

The **explain\_program\_name\_set** function may be used to set the libexplain libraries' idea of the command name of the calling process, setting the string to be returned by the *explain\_program\_name\_get*(3) function.  This overrides the automatic behavior, which can be quite desirable in commands that can be invoked with more than one name, *e.g.* if they are a hard link synonym.

This also sets the option to include the program name in all of the error messages issued by the *explain\_\*\_or\_die*(3) functions.

- *name*

  The name of the calling process. Only the basename will be used if a path containing slashes is given.

### explain\_program\_name\_assemble

void explain\_program\_name\_assemble(int yesno);

The explain\_program\_name\_assemble function is used to control whether or not the name of the calling process is to be included in error messages issued by the *explain\_\*\_or\_die*(3) functions. If not explicitly set, is controlled by the EXPLAIN\_OPTIONS environment variable, or defaults to true if not set there either.

- *yesno*

  non‐zero (true) to have program name included, zero (false) to have program name excluded.

## COPYRIGHT

libexplain version 1.4\
 Copyright (C) 2008 Peter Miller

## AUTHOR

Written by Peter Miller \<pmiller@opensource.org.au\>
