---
name: "CrtCloseHdlr"
section: "3"
platform: "macos"
package: "tcl"
version: "152"
release: "macOS 26.5"
platforms: ["macos"]
url: "https://new.carta.tech/CrtCloseHdlr"
---

# CrtCloseHdlr(3)

arrange for callbacks when channels are closed

## NAME

Tcl\_CreateCloseHandler, Tcl\_DeleteCloseHandler - arrange for callbacks when channels are closed

## SYNOPSIS

```
#include <tcl.h>

void
Tcl_CreateCloseHandler(channel, proc, clientData)

void
Tcl_DeleteCloseHandler(channel, proc, clientData)

```

## ARGUMENTS

The channel for which to create or delete a close callback. The procedure to call as the callback. Arbitrary one-word value to pass to *proc*.

## DESCRIPTION

**Tcl\_CreateCloseHandler** arranges for *proc* to be called when *channel* is closed with **Tcl\_Close** or **Tcl\_UnregisterChannel**, or using the Tcl **close** command. *Proc* should match the following prototype:

typedef void Tcl\_CloseProc(\
         ClientData *clientData*);

The *clientData* is the same as the value provided in the call to **Tcl\_CreateCloseHandler**.

**Tcl\_DeleteCloseHandler** removes a close callback for *channel*. The *proc* and *clientData* identify which close callback to remove; **Tcl\_DeleteCloseHandler** does nothing if its *proc* and *clientData* arguments do not match the *proc* and *clientData* for a  close handler for *channel*.

## SEE ALSO

[close(n)](/close/n.md), [Tcl\_Close(3)](/Tcl_Close/3.md), [Tcl\_UnregisterChannel(3)](/Tcl_UnregisterChannel/3.md)

## KEYWORDS

callback, channel closing
