The Open Group Base Specifications Issue 7
IEEE Std 1003.1, 2013 Edition
Copyright © 2001-2013 The IEEE and The Open Group

#### NAME

> search.h - search tables

#### SYNOPSIS

> `[XSI] #include <search.h>`

#### DESCRIPTION

> The <search.h> header shall define the ENTRY type for structure entry which shall include the following members:

>     char    *key
>     void    *data

> and 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 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, void **restrict,
>               int(*)(const void *, const void *));
>     void  *tfind(const void *, void *const *,
>               int(*)(const void *, const void *));
>     void  *tsearch(const void *, void **,
>               int(*)(const void *, const void *));
>     void   twalk(const void *,
>               void (*)(const void *, VISIT, int ));

The following sections are informative.

#### APPLICATION USAGE

> None.

#### RATIONALE

> None.

#### FUTURE DIRECTIONS

> None.

#### SEE ALSO

> <sys/types.h>

> XSH hcreate, insque, lsearch, tdelete

#### CHANGE HISTORY

> First released in Issue 1. Derived from Issue 1 of the SVID.

#### Issue 6

> 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().

End of informative text.

return to top of page

UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
Copyright © 2001-2013 The IEEE and The Open Group, All Rights Reserved
[ Main Index | XBD | XSH | XCU | XRAT ]