[Krafton Jungle] PintOS 2.0.0
크래프톤 정글 PintOS
 
Loading...
Searching...
No Matches
string.h File Reference
#include <stddef.h>
Include dependency graph for string.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define strcpy   dont_use_strcpy_use_strlcpy
 
#define strncpy   dont_use_strncpy_use_strlcpy
 
#define strcat   dont_use_strcat_use_strlcat
 
#define strncat   dont_use_strncat_use_strlcat
 
#define strtok   dont_use_strtok_use_strtok_r
 

Functions

void * memcpy (void *, const void *, size_t)
 
void * memmove (void *, const void *, size_t)
 
char * strncat (char *, const char *, size_t)
 
int memcmp (const void *, const void *, size_t)
 
int strcmp (const char *, const char *)
 
void * memchr (const void *, int, size_t)
 
char * strchr (const char *, int)
 
size_t strcspn (const char *, const char *)
 
char * strpbrk (const char *, const char *)
 
char * strrchr (const char *, int)
 
size_t strspn (const char *, const char *)
 
char * strstr (const char *, const char *)
 
void * memset (void *, int, size_t)
 
size_t strlen (const char *)
 
size_t strlcpy (char *, const char *, size_t)
 
size_t strlcat (char *, const char *, size_t)
 
char * strtok_r (char *, const char *, char **)
 
size_t strnlen (const char *, size_t)
 

Macro Definition Documentation

◆ strcat

#define strcat   dont_use_strcat_use_strlcat

◆ strcpy

#define strcpy   dont_use_strcpy_use_strlcpy

◆ strncat

#define strncat   dont_use_strncat_use_strlcat

◆ strncpy

#define strncpy   dont_use_strncpy_use_strlcpy

◆ strtok

#define strtok   dont_use_strtok_use_strtok_r

Function Documentation

◆ memchr()

void * memchr ( const void *  block_,
int  ch_,
size_t  size 
)
86 {
87 const unsigned char *block = block_;
88 unsigned char ch = ch_;
89
90 ASSERT (block != NULL || size == 0);
91
92 for (; size-- > 0; block++)
93 if (*block == ch)
94 return (void *) block;
95
96 return NULL;
97}
#define ASSERT(CONDITION)
Definition: debug.h:30
uint16_t size
Definition: mmu.h:0
#define NULL
Definition: stddef.h:4
Definition: malloc.c:56

◆ memcmp()

int memcmp ( const void *  a_,
const void *  b_,
size_t  size 
)
48 {
49 const unsigned char *a = a_;
50 const unsigned char *b = b_;
51
52 ASSERT (a != NULL || size == 0);
53 ASSERT (b != NULL || size == 0);
54
55 for (; size-- > 0; a++, b++)
56 if (*a != *b)
57 return *a > *b ? +1 : -1;
58 return 0;
59}
Here is the caller graph for this function:

◆ memcpy()

void * memcpy ( void *  dst_,
const void *  src_,
size_t  size 
)
7 {
8 unsigned char *dst = dst_;
9 const unsigned char *src = src_;
10
11 ASSERT (dst != NULL || size == 0);
12 ASSERT (src != NULL || size == 0);
13
14 while (size-- > 0)
15 *dst++ = *src++;
16
17 return dst_;
18}
Here is the caller graph for this function:

◆ memmove()

void * memmove ( void *  dst_,
const void *  src_,
size_t  size 
)
23 {
24 unsigned char *dst = dst_;
25 const unsigned char *src = src_;
26
27 ASSERT (dst != NULL || size == 0);
28 ASSERT (src != NULL || size == 0);
29
30 if (dst < src) {
31 while (size-- > 0)
32 *dst++ = *src++;
33 } else {
34 dst += size;
35 src += size;
36 while (size-- > 0)
37 *--dst = *--src;
38 }
39
40 return dst;
41}
Here is the caller graph for this function:

◆ memset()

void * memset ( void *  dst_,
int  value,
size_t  size 
)
258 {
259 unsigned char *dst = dst_;
260
261 ASSERT (dst != NULL || size == 0);
262
263 while (size-- > 0)
264 *dst++ = value;
265
266 return dst_;
267}
Here is the caller graph for this function:

◆ strchr()

char * strchr ( const char *  string,
int  c_ 
)
104 {
105 char c = c_;
106
107 ASSERT (string);
108
109 for (;;)
110 if (*string == c)
111 return (char *) string;
112 else if (*string == '\0')
113 return NULL;
114 else
115 string++;
116}
Here is the caller graph for this function:

◆ strcmp()

int strcmp ( const char *  a_,
const char *  b_ 
)
67 {
68 const unsigned char *a = (const unsigned char *) a_;
69 const unsigned char *b = (const unsigned char *) b_;
70
71 ASSERT (a != NULL);
72 ASSERT (b != NULL);
73
74 while (*a != '\0' && *a == *b) {
75 a++;
76 b++;
77 }
78
79 return *a < *b ? -1 : *a > *b;
80}
Here is the caller graph for this function:

◆ strcspn()

size_t strcspn ( const char *  string,
const char *  stop 
)
121 {
122 size_t length;
123
124 for (length = 0; string[length] != '\0'; length++)
125 if (strchr (stop, string[length]) != NULL)
126 break;
127 return length;
128}
char * strchr(const char *string, int c_)
Definition: string.c:104
Here is the call graph for this function:

◆ strlcat()

size_t strlcat ( char *  dst,
const char *  src,
size_t  size 
)
330 {
331 size_t src_len, dst_len;
332
333 ASSERT (dst != NULL);
334 ASSERT (src != NULL);
335
336 src_len = strlen (src);
337 dst_len = strlen (dst);
338 if (size > 0 && dst_len < size) {
339 size_t copy_cnt = size - dst_len - 1;
340 if (src_len < copy_cnt)
341 copy_cnt = src_len;
342 memcpy (dst + dst_len, src, copy_cnt);
343 dst[dst_len + copy_cnt] = '\0';
344 }
345 return src_len + dst_len;
346}
size_t strlen(const char *string)
Definition: string.c:271
void * memcpy(void *dst_, const void *src_, size_t size)
Definition: string.c:7
Here is the call graph for this function:

◆ strlcpy()

size_t strlcpy ( char *  dst,
const char *  src,
size_t  size 
)
302 {
303 size_t src_len;
304
305 ASSERT (dst != NULL);
306 ASSERT (src != NULL);
307
308 src_len = strlen (src);
309 if (size > 0) {
310 size_t dst_len = size - 1;
311 if (src_len < dst_len)
312 dst_len = src_len;
313 memcpy (dst, src, dst_len);
314 dst[dst_len] = '\0';
315 }
316 return src_len;
317}
Here is the call graph for this function:
Here is the caller graph for this function:

◆ strlen()

size_t strlen ( const char *  string)
271 {
272 const char *p;
273
274 ASSERT (string);
275
276 for (p = string; *p != '\0'; p++)
277 continue;
278 return p - string;
279}
Here is the caller graph for this function:

◆ strncat()

char * strncat ( char *  ,
const char *  ,
size_t   
)

◆ strnlen()

size_t strnlen ( const char *  string,
size_t  maxlen 
)
284 {
285 size_t length;
286
287 for (length = 0; string[length] != '\0' && length < maxlen; length++)
288 continue;
289 return length;
290}
Here is the caller graph for this function:

◆ strpbrk()

char * strpbrk ( const char *  string,
const char *  stop 
)
134 {
135 for (; *string != '\0'; string++)
136 if (strchr (stop, *string) != NULL)
137 return (char *) string;
138 return NULL;
139}
Here is the call graph for this function:

◆ strrchr()

char * strrchr ( const char *  string,
int  c_ 
)
144 {
145 char c = c_;
146 const char *p = NULL;
147
148 for (; *string != '\0'; string++)
149 if (*string == c)
150 p = string;
151 return (char *) p;
152}

◆ strspn()

size_t strspn ( const char *  string,
const char *  skip 
)
157 {
158 size_t length;
159
160 for (length = 0; string[length] != '\0'; length++)
161 if (strchr (skip, string[length]) == NULL)
162 break;
163 return length;
164}
Here is the call graph for this function:

◆ strstr()

char * strstr ( const char *  haystack,
const char *  needle 
)
170 {
171 size_t haystack_len = strlen (haystack);
172 size_t needle_len = strlen (needle);
173
174 if (haystack_len >= needle_len) {
175 size_t i;
176
177 for (i = 0; i <= haystack_len - needle_len; i++)
178 if (!memcmp (haystack + i, needle, needle_len))
179 return (char *) haystack + i;
180 }
181
182 return NULL;
183}
int memcmp(const void *a_, const void *b_, size_t size)
Definition: string.c:48
Here is the call graph for this function:

◆ strtok_r()

char * strtok_r ( char *  s,
const char *  delimiters,
char **  save_ptr 
)
219 {
220 char *token;
221
222 ASSERT (delimiters != NULL);
223 ASSERT (save_ptr != NULL);
224
225 /* If S is nonnull, start from it.
226 If S is null, start from saved position. */
227 if (s == NULL)
228 s = *save_ptr;
229 ASSERT (s != NULL);
230
231 /* Skip any DELIMITERS at our current position. */
232 while (strchr (delimiters, *s) != NULL) {
233 /* strchr() will always return nonnull if we're searching
234 for a null byte, because every string contains a null
235 byte (at the end). */
236 if (*s == '\0') {
237 *save_ptr = s;
238 return NULL;
239 }
240
241 s++;
242 }
243
244 /* Skip any non-DELIMITERS up to the end of the string. */
245 token = s;
246 while (strchr (delimiters, *s) == NULL)
247 s++;
248 if (*s != '\0') {
249 *s = '\0';
250 *save_ptr = s + 1;
251 } else
252 *save_ptr = s;
253 return token;
254}
static uint8_t s[256]
Definition: random.c:17
Here is the call graph for this function:
Here is the caller graph for this function: