/** @mainpage Dirk Krause's libraries. The dklib project consists of a set of libraries. The @ref changes page lists the changes from 3.x.x to 4.x.x. Before going into the details I recommend to read the @ref conceptions page. The following libraries are available: @section seclibdk4base libdk4base The @ref libdk4base library contains basic functionality, i.e. for the following purposes:
- Configuration of the library set - Data types, numeric constants - Error reporting from called function to caller - Memory management - String functions for char, wchar_t and dkChar strings. @section seclibdk4ma Mathematical library The @ref libdk4ma library contains arithmetic operations on integers of different bit width and comparison operations. The arithmetic operations check for overflow and prevent divisions by zero. The comparison operations can compare signed and unsigned integers properly. @section seclibdk4maio Number I/O libraries These libraries convert integer and double numbers to text and vice versa. Data types char, wchar_t and dkChar are supported, use either decimal or hexadecimal notation. Data type | Notation | Library :-------: | :------: | :-----: char | decimal | @ref libdk4maio8d char | hexadecimal | @ref libdk4maio8h wchar_t | decimal | @ref libdk4maiowd wchar_t | hexadecimal | @ref libdk4maiowh dkChar | decimal | @ref libdk4maiodd dkChar | hexadecimal | @ref libdk4maiodh @section seclibdk4c libdk4c The @ref libdk4c library contains modules for various purposes, including: - Information retrieval - Current users name, home directory, language, region, encoding - Host name, executable name, process ID - Information storage - Sorted and unsorted storage in AVL trees or double linked lists - Preferences handling - File and directory processing - String operations on path names - Information about files - Traverse, create and delete directories - File search - Unique file IDs - Open files with additional security checks - File operations using file descriptors - Generic I/O - Generic API to read or write single bytes or byte buffers - Text output with recoding to a specified output encoding - Plain files, gzip or bzip2 compressed files supported - Text processing and recoding - Recoding of characters and strings from and to ASCII, ANSI, UTF-8, UTF-16 and 32 bit characters. - Search for byte order marker (BOM) at beginning of data stream - Read byte input stream, convert to ASCII, ANSI, UTF-8, UTF-16 or 32 bit characters, process character by character or line by line - String tables to support internationalization - File search for configuration and data files, i.e. for string tables. - Command line option handling - Data encoding (run-length, ASCII-hex, ASCII-85) and decoding. - Bit handling (bit shifting, bit fields, bit matrices). - Timestamp handling and conversion to text. - Command line option handling. - Tool functions for daemons. @section seclibdk4dbi libdk4dbi The @ref libdk4dbi library provides a generic interface to Berkeley DB, NDBM and in-memory databases and allows to store text in these databases. @section seclibdk4mdrnd libdk4mdrnd The @ref libdk4mdrnd library generates message digests and random numbers. @section seclibdk4sock libdk4sock The @ref libdk4sock library contains functions for socket operations both for networking and local UNIX domain sockets. @section seclibdk4app libdk4app The @ref libdk4app library provides some equivalents for libdk4c functions with included localized diagnostics and other application support. @section seclibdk4lab libdk4lat The @ref libdk4lat library contains code to find LaTeX representations for 32 bit characters. @section seclibdk4dbia libdk4dbia The @ref libdk4dbia provides some equivalents for libdk4dbi functions with included localized diagnostics. @section seclibdk4socka libdk4socka The @ref libdk4socka library provides some equivalents for libdk4sock functions with included localized diagnostics. @section seclibdk4wx libdk4wx The @ref libdk4wx library provides helper classes to build wxWidgets base GUI applications. */