1999-05-03 07:29:11 +00:00
|
|
|
/*
|
|
|
|
FUNCTION
|
|
|
|
<<memchr>>---find character in memory
|
|
|
|
|
|
|
|
INDEX
|
|
|
|
memchr
|
|
|
|
|
|
|
|
ANSI_SYNOPSIS
|
|
|
|
#include <string.h>
|
|
|
|
void *memchr(const void *<[src]>, int <[c]>, size_t <[length]>);
|
|
|
|
|
|
|
|
TRAD_SYNOPSIS
|
|
|
|
#include <string.h>
|
|
|
|
void *memchr(<[src]>, <[c]>, <[length]>)
|
|
|
|
void *<[src]>;
|
|
|
|
void *<[c]>;
|
|
|
|
size_t <[length]>;
|
|
|
|
|
|
|
|
DESCRIPTION
|
|
|
|
This function searches memory starting at <<*<[src]>>> for the
|
|
|
|
character <[c]>. The search only ends with the first
|
|
|
|
occurrence of <[c]>, or after <[length]> characters; in
|
|
|
|
particular, <<NULL>> does not terminate the search.
|
|
|
|
|
|
|
|
RETURNS
|
|
|
|
If the character <[c]> is found within <[length]> characters
|
|
|
|
of <<*<[src]>>>, a pointer to the character is returned. If
|
|
|
|
<[c]> is not found, then <<NULL>> is returned.
|
|
|
|
|
|
|
|
PORTABILITY
|
|
|
|
<<memchr>> requires no supporting OS subroutines.
|
|
|
|
|
|
|
|
QUICKREF
|
|
|
|
memchr ansi pure
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <ansidecl.h>
|
|
|
|
#ifdef __STDC__
|
|
|
|
#include <stddef.h>
|
|
|
|
#else
|
|
|
|
#define size_t unsigned long
|
|
|
|
#endif
|
|
|
|
|
|
|
|
PTR
|
|
|
|
memchr (src_void, c, length)
|
|
|
|
register const PTR src_void;
|
|
|
|
int c;
|
|
|
|
size_t length;
|
|
|
|
{
|
|
|
|
const unsigned char *src = (const unsigned char *)src_void;
|
|
|
|
|
2001-03-28 05:02:47 +00:00
|
|
|
while (length-- > 0)
|
1999-05-03 07:29:11 +00:00
|
|
|
{
|
|
|
|
if (*src == c)
|
|
|
|
return (PTR)src;
|
|
|
|
src++;
|
|
|
|
}
|
|
|
|
return NULL;
|
|
|
|
}
|