---
name: "ck_rhs_remove"
section: "3"
platform: "linux"
package: "libck-dev"
version: "0.7.2-6"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/ck_rhs_remove"
---

# ck\_rhs\_remove(3)

remove key from a hash set

## NAME

**ck\_rhs\_remove** – remove key from a hash set

## LIBRARY

Concurrency Kit (libck, -lck)

## SYNOPSIS

**#include \<ck\_rhs.h\>**

*void* *\**\

**ck\_rhs\_remove**(*ck\_rhs\_t \*hs*, *unsigned long hash*, *const void \*key*);

## DESCRIPTION

The **ck\_rhs\_remove**(*3*) function will attempt to remove the key specified by the *key* argument in the hash set pointed to by the *hs* argument. The key specified by *key* is expected to have the hash value specified by the *hash* argument (which was previously generated using the [CK\_RHS\_HASH(3)](/CK_RHS_HASH/3.md) macro).

If the call to **ck\_rhs\_remove**(*3*) was successful then the key contained in the hash set is returned. If the key was not a member of the hash set then NULL is returned.

## RETURN VALUES

Upon successful completion, **ck\_rhs\_remove**(*3*) returns a pointer to a key and otherwise returns NULL on failure.

## ERRORS

Behavior is undefined if *key* or *hs* are uninitialized.

## SEE ALSO

[ck\_rhs\_init(3)](/ck_rhs_init/3.md), [ck\_rhs\_move(3)](/ck_rhs_move/3.md), [ck\_rhs\_destroy(3)](/ck_rhs_destroy/3.md), [CK\_RHS\_HASH(3)](/CK_RHS_HASH/3.md), [ck\_rhs\_iterator\_init(3)](/ck_rhs_iterator_init/3.md), [ck\_rhs\_next(3)](/ck_rhs_next/3.md), [ck\_rhs\_get(3)](/ck_rhs_get/3.md), [ck\_rhs\_put(3)](/ck_rhs_put/3.md), [ck\_rhs\_put\_unique(3)](/ck_rhs_put_unique/3.md), [ck\_rhs\_set(3)](/ck_rhs_set/3.md), [ck\_rhs\_fas(3)](/ck_rhs_fas/3.md), [ck\_rhs\_grow(3)](/ck_rhs_grow/3.md), [ck\_rhs\_gc(3)](/ck_rhs_gc/3.md), [ck\_rhs\_rebuild(3)](/ck_rhs_rebuild/3.md), [ck\_rhs\_count(3)](/ck_rhs_count/3.md), [ck\_rhs\_reset(3)](/ck_rhs_reset/3.md), [ck\_rhs\_reset\_size(3)](/ck_rhs_reset_size/3.md), [ck\_rhs\_stat(3)](/ck_rhs_stat/3.md)

Additional information available at http://concurrencykit.org/
