search.h — search tables
[XSI] #include <search.h>
The <search.h> header shall define the ENTRY type for structure entry which shall include the following members:
char *key void *dataand shall define ACTION and VISIT as enumeration data types through type definitions as follows:
enum { FIND, ENTER } ACTION; enum { preorder, postorder, endorder, leaf } VISIT;The <search.h> header shall define the size_t type as described in <sys/types.h>.
The <search.h> header shall define via typedef the posix_tnode type as an alias for void.
The following shall be declared as functions and may also be defined as macros. Function prototypes shall be provided.
int hcreate(size_t); void hdestroy(void); ENTRY *hsearch(ENTRY, ACTION); void insque(void *, void *); void *lfind(const void *, const void *, size_t *, size_t, int (*)(const void *, const void *)); void *lsearch(const void *, void *, size_t *, size_t, int (*)(const void *, const void *)); void remque(void *); void *tdelete(const void *restrict, posix_tnode **restrict, int(*)(const void *, const void *)); posix_tnode *tfind(const void *, posix_tnode *const *, int(*)(const void *, const void *)); posix_tnode *tsearch(const void *, posix_tnode **, int(*)(const void *, const void *)); void twalk(const posix_tnode *, void (*)(const posix_tnode *, VISIT, int));
None.
Earlier versions of this standard explicitly used void for both node and key references where this version now uses posix_tnode for nodes and keeps void in the text referring only to keys. In order to preserve backwards compatibility, this version defines posix_tnode as an alias for void. The change was made to make the function prototypes more easily understandable.
None.
First released in Issue 1. Derived from Issue 1 of the SVID.
The Open Group Corrigendum U021/6 is applied, updating the prototypes for tdelete() and tsearch().
The restrict keyword is added to the prototype for tdelete().
Austin Group Defect 1011 is applied, adding the posix_tnode type and changing some prototypes to use it instead of void.
return to top of page