Como excluir o elemento do hsearch

Estou usando a função hsearch_r fornecida pela biblioteca GNU C.

Vejo que, embora eu possa adicionar elementos à tabela HASH usando hsearch_r e passando a ação como ENTER, não vejo como remover um elemento ou uma entrada da tabela HASH.

Alguém sabe um motivo para isso?

Posso fazer o seguinte para implementar minha função de exclusão.

Primeiro procuro por ele usando hsearch_r com a ação como FIND. Então, uma vez que recebo um ponteiro para o hash_element, liberto-o. Isso vai funcionar? Qual a vantagem de uma biblioteca de hash se eu puder apenas adicionar elementos e procurá-los. Por que não é fornecida uma rotina de exclusão?

Eu tentei pesquisar no Google o código fonte da biblioteca hsearch e não consegui encontrá-lo. Alguém também pode me indicar isso?

http://linux.die.net/man/3/hcreate_r

EDITAR:

Também vejo que, se eu chamar o hsearch_r duas vezes com a ação ADD, ele não gera um erro nem atualiza o hash com o novo valor. Isso é estranho. Isso significa que internamente o hsearch NÃO implementa uma funcionalidade de substituição e teremos que fazer isso sozinhos, ou seja, primeiro faça uma pesquisa e, se existir, exclua a primeira entrada e adicione uma nova. No entanto, para fazer isso, precisaríamos excluir um elemento do hash, o que não consigo.

questionAnswers(1)

yourAnswerToTheQuestion