bcopy(9)

bcopy9

Copy bytes in object

Usage

#include <sys/systm.h>

void

bcopy(const void *src, void *dst, size_t len);

Overview

The bcopy() function copies len bytes from object src to object dst preserving the provenance of pointers in the copied object (see memory_model(7) for further information). The two objects may overlap. If len is zero, no bytes are copied.

The bcopy() function is deprecated and memcpy() or memmove() should be used as appropriate in new code.

History

A bcopy() function appeared in 4.2BSD.

IEEE Std 1003.1-2008 (“POSIX.1”) removes the specification of bcopy() and it is marked as LEGACY in IEEE Std 1003.1-2004 (“POSIX.1”). New programs should use memmove(3). If the input and output buffer do not overlap, then memcpy(3) is more efficient. Note that bcopy() takes src and dst in the opposite order from memmove() and memcpy(). In practice, ⟨sys/systm.h⟩ defines bcopy() as a macro that calls memmove() since FreeBSD 12.0.

From base 16.0-CURRENT-20261027-61c70dc16a79 in FreeBSD 16.0-CURRENT (2026-10-27). Parsed by carta from the page's mdoc source.