---
name: "zip_register_progress_callback_with_state"
section: "3"
platform: "linux"
package: "libzip"
version: "1.11.4-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/zip_register_progress_callback_with_state"
---

# zip\_register\_progress\_callback\_with\_state(3)

provide updates during zip\_close

## NAME

**zip\_register\_progress\_callback\_with\_state** – provide updates during zip\_close

## LIBRARY

libzip (-lzip)

## SYNOPSIS

**#include \<zip.h\>**

*typedef* *void* *(\*zip\_progress\_callback)(zip\_t* *\*,* *double,* *void* *\*);*

*void*\

**zip\_register\_progress\_callback\_with\_state**(*zip\_t \*archive*, *double precision*, *zip\_progress\_callback callback*, *void (\*ud\_free)(void \*)*, *void \*ud*);

## DESCRIPTION

The **zip\_register\_progress\_callback\_with\_state**() function registers a callback function *callback* for the zip archive *archive*. The *precision* argument is a double in the range from 0.00 to 1.0 that defines the smallest change for which the callback should be called (to avoid too frequent calls). The *ud\_free* function is called during cleanup for deleting the userdata supplied in *ud*.

The callback function is called during [zip\_close(3)](/zip_close/3.md) in regular intervals (after every zip archive entry that's completely written to disk, and while writing data for entries) with zip archive *archive*, the current progression state as a *double*, and the user-provided user-data *ud* as arguments. The progression state is a *double* in the range from 0.0 to 1.0. This can be used to provide progress indicators for user interfaces.

## SEE ALSO

[libzip(3)](/libzip/3.md), [zip\_close(3)](/zip_close/3.md), [zip\_register\_cancel\_callback\_with\_state(3)](/zip_register_cancel_callback_with_state/3.md)

## HISTORY

**zip\_register\_progress\_callback\_with\_state**() was added in libzip 1.3.0.

## AUTHORS

Dieter Baron ⟨*dillo@nih.at*⟩ and Thomas Klausner ⟨*wiz@gatalith.at*⟩
