DragonFly On-Line Manual Pages

Search: Section:  


HASH CONVENIENCES(3)  DragonFly Library Functions Manual  HASH CONVENIENCES(3)

NAME

hash_compare_int, hash_compare_string, hash_hash_int, hash_hash_string, hash_copy_int, hash_copy_string - libhash convenience functions

LIBRARY

Hash Library (libhash, -lhash)

SYNOPSIS

#include <sys/types.h> #include <hash.h> int hash_compare_int(void *key1, void *key2); int hash_compare_string(void *key1, void *key2); u_int32_t hash_hash_int(void *key, u_int32_t number_of_buckets); u_int32_t hash_hash_string(void *key, u_int32_t number_of_buckets); int hash_copy_int(void **destination, void *source); int hash_copy_string(void **destination, void *source);

DESCRIPTION

These functions are provided by libhash as a convenience for users. They are all designed to be passed to hash_initialise() as one of the parameters. The functions hash_compare_int() and hash_compare_string() are designed to be passed to hash_initialise() as the compare_keys argument. hash_compare_int() works with keys that are integers and hash_compare_string() works with keys that are nul terminated char arrays (strings). hash_compare_string() performs a case sensistive lexicographical comparison. The functions hash_hash_int() and hash_hash_string() are designed to be passed to hash_initialise() as the hash_function argument. hash_hash_int() works with keys that are integers and hash_hash_string() works with keys that are nul terminated char arrays (strings). The functions hash_copy_int() and hash_copy_string() are designed to be passed to hash_initialise() as the duplicate_key argument. hash_copy_int() works with keys that are integers and hash_copy_string() works with keys that are nul terminated char arrays (strings).

RETURN VALUES

The hash_compare_int(), and hash_compare_string() functions return a value less than 0 if key1 is less than key2, a value equal to 0 if key1 is equal to key2 and a value greater than 0 if key1 is greater than key2. hash_hash_int() and hash_hash_string() return a number between 0 and number_of_buckets - 1. hash_copy_int() and hash_copy_string() return 0 on failure and set the global variable errno to indicate the error.

EXAMPLES

See the tests directory included in the distribution.

ERRORS

[ENOMEM] A call to malloc failed.

SEE ALSO

libhash(3)

HISTORY

The libhash library was written in January 2002 for emmao (a program to kill off rogue processes under Solaris). libhash was written under FreeBSD 4.4.

AUTHORS

Andrew Stevenson <andrew@ugh.net.au>

BUGS

hash_hash_string() is a very simple algorithm and good be improved greatly. Please report others to <andrew@ugh.net.au>. UgH! January 14, 2002 UgH!

Search: Section: