---
name: "dictModifyValue"
section: "3"
platform: "linux"
package: "clearsilver-dev"
version: "0.10.5-6+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/dictModifyValue"
---

# dictModifyValue(3)

create/modify an item.

## NAME

dictModifyValue  - create/modify an item.

## SYNOPSIS

```
#include <util/dict.h>
```

```
NEOERR *dictModifyValue(dictCtx dict, const char *id, dictNewValueCB new_cb,
                     dictUpdateValueCB update, void *rock);
```

## ARGUMENTS

dict - dictionary to add pair to.\
 id - identifier of value\
 new - function to call to create new value (may be NULL)\
 update - function to call to modify value (if NULL, the old\
 value is freed, and \<new\> is used)\
 rock - context to pass to \<new\> or \<update\>.

## DESCRIPTION

Finds \<id\>'s value and calls \<update\>.  If \<id\> is not in \<dict\>, calls \<new\> to obtain a new value.

MT-Level: Safe if \<dict\> thread-safe.

## RETURN VALUE

None.

## SEE ALSO

[**dictDestroy**(3)](/dictDestroy/3.md), [**dictCleanup**(3)](/dictCleanup/3.md), [**dictReleaseLock**(3)](/dictReleaseLock/3.md), [**dictRemove**(3)](/dictRemove/3.md), [**dictNext**(3)](/dictNext/3.md), [**dictCreate**(3)](/dictCreate/3.md), [**dictSetValue**(3)](/dictSetValue/3.md), [**dictModifyValue**(3)](/dictModifyValue/3.md), **dictSearch**
