Commit | Line | Data |
---|---|---|
252b5132 RH |
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 | } |