2 |
This function is in the public domain. */ |
This function is in the public domain. */ |
3 |
|
|
4 |
/* |
/* |
|
NAME |
|
|
memcmp -- compare two memory regions |
|
5 |
|
|
6 |
SYNOPSIS |
@deftypefn Supplemental int memcmp (const void *@var{x}, const void *@var{y}, size_t @var{count}) |
7 |
int memcmp (const void *from, const void *to, size_t count) |
|
8 |
|
Compares the first @var{count} bytes of two areas of memory. Returns |
9 |
|
zero if they are the same, a value less than zero if @var{x} is |
10 |
|
lexically less than @var{y}, or a value greater than zero if @var{x} |
11 |
|
is lexically greater than @var{y}. Note that lexical order is determined |
12 |
|
as if comparing unsigned char arrays. |
13 |
|
|
14 |
|
@end deftypefn |
15 |
|
|
|
DESCRIPTION |
|
|
Compare two memory regions and return less than, |
|
|
equal to, or greater than zero, according to lexicographical |
|
|
ordering of the compared regions. |
|
16 |
*/ |
*/ |
17 |
|
|
18 |
#include <ansidecl.h> |
#include <ansidecl.h> |
19 |
#ifdef __STDC__ |
#ifdef ANSI_PROTOTYPES |
20 |
#include <stddef.h> |
#include <stddef.h> |
21 |
#else |
#else |
22 |
#define size_t unsigned long |
#define size_t unsigned long |
23 |
#endif |
#endif |
24 |
|
|
25 |
int |
int |
26 |
DEFUN(memcmp, (str1, str2, count), |
memcmp (str1, str2, count) |
27 |
const PTR str1 AND const PTR str2 AND size_t count) |
const PTR str1; |
28 |
|
const PTR str2; |
29 |
|
size_t count; |
30 |
{ |
{ |
31 |
register const unsigned char *s1 = (const unsigned char*)str1; |
register const unsigned char *s1 = (const unsigned char*)str1; |
32 |
register const unsigned char *s2 = (const unsigned char*)str2; |
register const unsigned char *s2 = (const unsigned char*)str2; |