| memory.h(3head) | memory.h(3head) |
NAME
memory.h - memory operations
LIBRARY
Standard C library (libc, -lc)
SYNOPSIS
#include <memory.h>
DESCRIPTION
Write
Copy
Catenate
Duplicate
Compare
Search
VERSIONS
In some systems (Illumos), <memory.h> contains only a few of these functions, and thus <string.h> is needed.
STANDARDS
BSD.
These functions are also provided in <string.h>, 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 <memory.h> header file. 4.3BSD (1986) adopted them.
SVID Issue 1 (1985) standardized this header file, but stated that the functions would be moved to <string.h>.
XPG Issue 3 (1989) listed <memory.h> as WITHDRAWN, and stated that the functions had been moved to <string.h>.
C89 didn't standardize this header file and instead specified all these functions in <string.h>.
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 <memory.h>.
gnulib doesn't provide it, though, and instead uses <string.h>.
SEE ALSO
| 2026-08-10 | Linux man-pages 6.19 |