COHERENT manpages

This page displays the COHERENT manpage for memcmp() [Compare two regions].

List of available manpages
Index


memcmp() -- String Function (libc)

Compare two regions
#include <string.h>
int memcmp(region1, region2, count)
char *region1; char *region2; unsigned int count;

memcmp()  compares region1  with region2 character  by character  for count
characters.

If every  character in region1 is identical  to its corresponding character
in region2,  then memcmp() returns zero.   If it finds that  a character in
region1  has  a  numeric  value  greater  than that  of  the  corresponding
character in  region2, then it returns  a number greater than  zero.  If it
finds that a  character in region1 has a numeric  value less than less that
of the  corresponding character in  region2, then it returns  a number less
than zero.

For example, consider the following code:

    char region1[13], region2[13];
    strcpy(region1, "Hello, world");
    strcpy(region2, "Hello, World");
    memcmp(region1, region2, 12);

memcmp() scans through the two regions of memory, comparing region1[0] with
region2[0], and  so on, until  it finds two corresponding  ``slots'' in the
arrays whose  contents differ.  In the above example,  this will occur when
it compares region1[7] (which contains `w') with region2[7] (which contains
`W').  It  then compares the two  letters to see which  stands first in the
character table  used in this  implementation, and returns  the appropriate
value.

memcmp() differs from the string comparison routine strcmp() in a number of
ways.   First, memcmp()  compares regions  of  memory rather  than strings;
therefore, it does not stop when it encounters a NUL.

Also,  you can  use memcmp()  to compare  an int array  with a  char array,
because memcmp() simply compares areas of data.

See Also

libc,
strcmp(),
string.h
ANSI Standard, §7.11.4.1