memory.h(3head) memory.h(3head) NAME memory.h - memory operations LIBRARY Standard C library (libc, -lc) SYNOPSIS #include DESCRIPTION Write bzero(3) explicit_bzero(3) memset(3) memset_explicit(3) Copy memmove(3) memcpy(3) mempcpy(3) memccpy(3) strncpy(3) stpncpy(3) Catenate strncat(3) Duplicate strndup(3) strndupa(3) Compare memeq(3) memcmp(3) strncmp(3) strncasecmp(3) Search memchr(3) memrchr(3) memmem(3) VERSIONS In some systems (Illumos), contains only a few of these functions, and thus is needed. STANDARDS BSD. These functions are also provided in , as specified by ISO C. This is a historic mistake maintained for compatibility reasons; these functions aren't string APIs. HISTORY SVr1, 4.3BSD. System V (1983) introduced an initial set of mem* functions in a header file. 4.3BSD (1986) adopted them. SVID Issue 1 (1985) standardized this header file, but stated that the functions would be moved to . XPG Issue 3 (1989) listed as WITHDRAWN, and stated that the functions had been moved to . C89 didn't standardize this header file and instead specified all these functions in . This merge of header files has historically confused programmers about the real purpose of these functions. Most C libraries, including the BSDs, glibc, musl, Bionic, and Illumos continue to provide . gnulib doesn't provide it, though, and instead uses . SEE ALSO string(3), string_copying(7) Linux man-pages 6.19 2026-08-10 memory.h(3head)