1libtar_hash_new(3) C Library Calls libtar_hash_new(3)
2
3
4
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
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
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
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
70 libtar_list_new(3)
71
72
73
74University of Illinois Jan 2000 libtar_hash_new(3)