![]() |
![]()
| ![]() |
![]()
NAMEsethtitem - test and set an item in an hash table. See the file man1/alc_origin.1. SYNOPSIS#include "mut.h" int sethtitem(table, key) ht ∗table; void ∗key; PARAMETERSDESCRIPTIONsethtitem() adds an item in the hash table pointed to by table, whether it existed or not, and returns an appropriate value. This is kind of a test and set operator. RETURN VALUEIf the key exists, the function return 1, if it doesn't, the item is stored and the function returns 0. EXAMPLE#include <stdio.h> #include "mut.h" checksigname(p) lofig_list *p; { int i; losig_list *ptsig; locon_list *ptcon; ht *h; char *amatla; for (i = 0, ptsig = p->LOSIG; ptsig; i++, ptsig = ptsig->NEXT); h = addht(i << 1); /* half empty hash tables are faster! */ for (ptcon = p->LOCON; ptcon; ptcon = ptcon->NEXT) addhtitem(h, ptcon->NAME, 0); for (ptsig = p->LOSIG; ptsig; ptsig = ptsig->NEXT) { if (ptsig->TYPE == INTERNAL) { amatla = getsigname(ptsig); if (!sethtitem(h, amatla, 0)) printf("node %s is now unique\n", amatla); } } delht(h); } ERRORS"∗∗∗ mbk error ∗∗∗ sethtitem impossible : value is EMPTYHT or DELETEHT" The values EMPTYHT, -1, and
DELETEHT, -2, are reserved for internal use, sorry.
DIAGNOSTICSThe value must be distinct from -1 and -2. SEE ALSOmbk(1), addht(3), delht(3), addhtitem(3), gethtitem(3), delhtitem(3), viewht(3). See the file man1/alc_bug_report.1.
|