SETHTITEM(3) | MBK HASH TABLE MANAGEMENT FUNCTIONS | SETHTITEM(3) |
sethtitem - test and set an item in an hash table.
See the file buster/alliance/alc_origin.1.en.gz.
#include "mut.h" int sethtitem(table, key) ht ∗table; void ∗key;
sethtitem() 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.
If the key exists, the funtion return 1, if it doesn't, the item is stored and the function returns 0.
#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); }
"∗∗∗ mbk error ∗∗∗ sethtitem impossible : value is EMPTYHT or DELETEHT"
The value must be distinct from -1 and -2.
mbk(1), addht(3), delht(3), addhtitem(3), gethtitem(3), delhtitem(3), viewht(3).
See the file buster/alliance/alc_bug_report.1.en.gz.
October 1, 1997 | ASIM/LIP6 |