.\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
.\"
.\" %%%LICENSE_START(VERBATIM)
.\" Permission is granted to make and distribute verbatim copies of this
.\" manual provided the copyright notice and this permission notice are
.\" preserved on all copies.
.\"
.\" Permission is granted to copy and distribute modified versions of this
.\" manual under the conditions for verbatim copying, provided that the
.\" entire resulting derived work is distributed under the terms of a
.\" permission notice identical to this one.
.\"
.\" Since the Linux kernel and libraries are constantly changing, this
.\" manual page may be incorrect or out-of-date.  The author(s) assume no
.\" responsibility for errors or omissions, or for damages resulting from
.\" the use of the information contained herein.  The author(s) may not
.\" have taken the same level of care in the production of this manual,
.\" which is licensed free of charge, as they might when working
.\" professionally.
.\"
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
.\" References consulted:
.\"     Linux libc source code
.\"     Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991)
.\"     386BSD man pages
.\" Modified Sat Jul 24 21:36:50 1993 by Rik Faith <faith@cs.unc.edu>
.\" Modified Tue Oct 22 23:47:36 1996 by Eric S. Raymond <esr@thyrsus.com>
.TH BCMP 3  2017-03-13 "Linux" "Linux Programmer's Manual"
.SH NAME
bcmp \- compare byte sequences
.SH SYNOPSIS
.nf
.B #include <strings.h>
.PP
.BI "int bcmp(const void *" s1 ", const void *" s2 ", size_t " n );
.fi
.SH DESCRIPTION
The
.BR bcmp ()
function compares the two byte sequences
.I s1
and
.I s2
of length
.I n
each.
If they are equal, and in particular if
.I n
is zero,
.BR bcmp ()
returns 0.
Otherwise, it returns a nonzero result.
.SH RETURN VALUE
The
.BR bcmp ()
function returns 0 if the byte sequences are equal,
otherwise a nonzero result is returned.
.SH ATTRIBUTES
For an explanation of the terms used in this section, see
.BR attributes (7).
.TS
allbox;
lb lb lb
l l l.
Interface	Attribute	Value
T{
.BR bcmp ()
T}	Thread safety	MT-Safe
.TE
.SH CONFORMING TO
4.3BSD.
This function is deprecated (marked as LEGACY in POSIX.1-2001): use
.BR memcmp (3)
in new programs.
POSIX.1-2008 removes the specification of
.BR bcmp ().
.SH SEE ALSO
.BR bstring (3),
.BR memcmp (3),
.BR strcasecmp (3),
.BR strcmp (3),
.BR strcoll (3),
.BR strncasecmp (3),
.BR strncmp (3)
