1libtar_hash_new(3)              C Library Calls             libtar_hash_new(3)
2
3
4

NAME

6       libtar_hash_new,  libtar_hash_free, libtar_hash_next, libtar_hash_prev,
7       libtar_hash_getkey,    libtar_hash_search,    libtar_hash_add,     lib‐
8       tar_hash_del - hash table routines
9

SYNOPSIS

11       #include <libtar.h>
12
13       libtar_hash_t *libtar_hash_new(int num, int (*hashfunc)());
14       void libtar_hash_free(libtar_hash_t *h, void (*freefunc)());
15       int libtar_hash_next(libtar_hash_t *h, libtar_hashptr_t *hp);
16       int libtar_hash_prev(libtar_hash_t *h, libtar_hashptr_t *hp);
17       int  libtar_hash_search(libtar_hash_t  *h,  libtar_hashptr_t  *hp, void
18       *data, int (*matchfunc)());
19       int libtar_hash_getkey(libtar_hash_t  *h,  libtar_hashptr_t  *hp,  void
20       *data, int (*matchfunc)());
21       int libtar_hash_add(libtar_hash_t *h, void *data);
22       int libtar_hash_del(libtar_hash_t *h, libtar_hashptr_t *hp);
23

DESCRIPTION

25       The  libtar_hash_new() function creates a new hash with num buckets and
26       using hash function pointed to by hashfunc.  If  hashfunc  is  NULL,  a
27       default hash function designed for 7-bit ASCII strings is used.
28
29       The  libtar_hash_free() function deallocates all memory associated with
30       the hash structure h.  If freefunc is not NULL, it is  called  to  free
31       memory associated with each node in the hash.
32
33       The  libtar_hash_next()  and  libtar_hash_prev()  functions are used to
34       iterate through the  hash.   The  libtar_hashptr_t  structure  has  two
35       fields:  bucket,  which  indicates  the current bucket in the hash, and
36       node, which is a pointer to the current node in the current bucket.  To
37       start at the beginning or end of the hash, the caller should initialize
38       hp.bucket to -1 and hp.node to NULL.
39
40       The libtar_hash_search() function searches iteratively through the hash
41       h  until  it  finds a node whose contents match data using the matching
42       function matchfunc.  Searching begins at the location pointed to by hp.
43
44       The libtar_hash_getkey() function uses  the  hash  function  associated
45       with  h  to determine which bucket data should be in, and searches only
46       that bucket for a matching node using matchfunc.  Searching  begins  at
47       the location pointed to by hp.
48
49       The libtar_hash_add() function adds data into hash h.
50
51       The libtar_hash_del() function removes the node referenced by hp.
52

RETURN VALUE

54       The libtar_hash_new() function returns a pointer to the new hash struc‐
55       ture, or NULL on error.
56
57       The libtar_hash_next() and libtar_hash_prev() functions return  1  when
58       valid data is returned, and 0 at the end of the hash.
59
60       The  libtar_hash_getkey()  and  libtar_hash_search() functions return 1
61       when a match is found, or 0 otherwise.
62
63       The libtar_hash_add() function returns 0 on success,  or  -1  on  error
64       (and sets errno).
65
66       The  libtar_hash_del()  function  returns  0 on success, or -1 on error
67       (and sets errno).
68

SEE ALSO

70       libtar_list_new(3)
71
72
73
74University of Illinois             Jan 2000                 libtar_hash_new(3)
Impressum