|
|
1.1 ! root 1: /* ! 2: FUNCTION ! 3: <<memchr>>---find character in memory ! 4: ! 5: INDEX ! 6: memchr ! 7: ! 8: ANSI_SYNOPSIS ! 9: #include <string.h> ! 10: void *memchr(const void *<[src]>, int <[c]>, size_t <[length]>); ! 11: ! 12: TRAD_SYNOPSIS ! 13: #include <string.h> ! 14: void *memchr(<[src]>, <[c]>, <[length]>) ! 15: void *<[src]>; ! 16: void *<[c]>; ! 17: size_t <[length]>; ! 18: ! 19: DESCRIPTION ! 20: This function searches memory starting at <<*<[src]>>> for the ! 21: character <[c]>. The search only ends with the first ! 22: occurrence of <[c]>, or after <[length]> characters; in ! 23: particular, <<NULL>> does not terminate the search. ! 24: ! 25: RETURNS ! 26: If the character <[c]> is found within <[length]> characters ! 27: of <<*<[src]>>>, a pointer to the character is returned. If ! 28: <[c]> is not found, then <<NULL>> is returned. ! 29: ! 30: PORTABILITY ! 31: <<memchr>> requires no supporting OS subroutines. ! 32: ! 33: QUICKREF ! 34: memchr ansi pure ! 35: ! 36: */ ! 37: ! 38: #include <ansidecl.h> ! 39: #ifdef __STDC__ ! 40: #include <stddef.h> ! 41: #else ! 42: #define size_t unsigned long ! 43: #endif ! 44: ! 45: PTR ! 46: memchr (src_void, c, length) ! 47: register CONST PTR src_void; ! 48: int c; ! 49: size_t length; ! 50: { ! 51: CONST unsigned char *src = (CONST unsigned char *)src_void; ! 52: ! 53: while (--length >= 0) ! 54: { ! 55: if (*src == c) ! 56: return (PTR)src; ! 57: src++; ! 58: } ! 59: return NULL; ! 60: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.