# Utility Functions This section documents various utility functions that may help with application portability. These are not fundamental to NNG or Scalability Protocols, but they are likely useful for a variety of other uses. - [nng_alloc](nng_alloc.md) --- allocate memory - [nng_clock](nng_clock.md) --- get time - [nng_duration](nng_duration.md) -- relative time in milliseconds - [nng_id_map](nng_id_map.md) --- identifier based mapping table - [nng_msleep](nng_msleep.md) --- sleep milliseconds - [nng_opts_parse](nng_opts_parse.md) --- parse command line options - [nng_random](nng_random.md) --- get random number - [nng_socket_pair](nng_socket_pair.md) --- create a connected pair of BSD sockets - [nng_strdup](nng_strdup.md) --- duplicate string - [nng_strerror](nng_strerror.md) --- return an error description - [nng_url](nng_url.md) --- Universal Resource Locator object - [nng_version](nng_version.md) --- report library version