---
name: "memcmp"
section: "3"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd", "macos"]
url: "https://new.carta.tech/memcmp"
---

# memcmp(3)

compare bytes in memory

## NAME

**memcmp** – compare bytes in memory

## LIBRARY

Standard C Library (libc, -lc)

## SYNOPSIS

**#include \<string.h\>**

*int*\

**memcmp**(*const void \*b1*, *const void \*b2*, *size\_t len*);

## DESCRIPTION

The **memcmp**() function compares byte object *b1* against byte object *b2*. Both objects are assumed to be *len* bytes long.

## RETURN VALUES

The **memcmp**() function returns zero if the two objects are identical. Zero-length objects are considered identical. The **memcmp**() function returns a negative value if the first differing byte has a lower value in *b1* and a positive value if the first differing byte has a higher value in *b1*.

## SEE ALSO

[bcmp(3)](/bcmp/3.md), [strcasecmp(3)](/strcasecmp/3.md), [strcmp(3)](/strcmp/3.md), [strcoll(3)](/strcoll/3.md), [strxfrm(3)](/strxfrm/3.md), [timingsafe\_memcmp(3)](/timingsafe_memcmp/3.md), [wmemcmp(3)](/wmemcmp/3.md)

## STANDARDS

The **memcmp**() function conforms to ISO/IEC 9899:1990 (“ISO C90”).

## CAVEATS

If the objects differ, the C library **memcmp**() implementation returns the difference between the first two differing bytes (treated as *unsigned char* values). This behavior is not specified by ISO/IEC 9899:1990 (“ISO C90”), is not portable, and may not occur in light of compiler optimizations.
