Tizen RT Libs&Environment  v1.1 D4
string.h
Go to the documentation of this file.
1 /****************************************************************************
2  *
3  * Copyright 2016 Samsung Electronics All Rights Reserved.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing,
12  * software distributed under the License is distributed on an
13  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
14  * either express or implied. See the License for the specific
15  * language governing permissions and limitations under the License.
16  *
17  ****************************************************************************/
18 /****************************************************************************
19  * include/string.h
20  *
21  * Copyright (C) 2007-2012, 2014 Gregory Nutt. All rights reserved.
22  * Author: Gregory Nutt <gnutt@nuttx.org>
23  *
24  * Redistribution and use in source and binary forms, with or without
25  * modification, are permitted provided that the following conditions
26  * are met:
27  *
28  * 1. Redistributions of source code must retain the above copyright
29  * notice, this list of conditions and the following disclaimer.
30  * 2. Redistributions in binary form must reproduce the above copyright
31  * notice, this list of conditions and the following disclaimer in
32  * the documentation and/or other materials provided with the
33  * distribution.
34  * 3. Neither the name NuttX nor the names of its contributors may be
35  * used to endorse or promote products derived from this software
36  * without specific prior written permission.
37  *
38  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
39  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
40  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
41  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
42  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
43  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
44  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
45  * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
46  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
47  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
48  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
49  * POSSIBILITY OF SUCH DAMAGE.
50  *
51  ****************************************************************************/
60 
63 #ifndef __INCLUDE_STRING_H
64 #define __INCLUDE_STRING_H
65 
66 /****************************************************************************
67  * Included Files
68  ****************************************************************************/
69 
70 #include <tinyara/config.h>
71 
72 #include <stddef.h>
73 
74 /****************************************************************************
75  * Pre-processor Definitions
76  ****************************************************************************/
77 /* Compatibility definitions */
78 
79 #ifndef CONFIG_ARCH_BZERO
80 #define bzero(s, n) (void)memset(s, 0, n)
81 #endif
82 
83 #define bcopy(b1, b2, len) (void)memmove(b2, b1, len)
84 
85 /****************************************************************************
86  * Global Function Prototypes
87  ****************************************************************************/
88 
89 #undef EXTERN
90 #if defined(__cplusplus)
91 #define EXTERN extern "C"
92 extern "C" {
93 #else
94 #define EXTERN extern
95 #endif
96 
103 FAR char *strdup(FAR const char *s);
110 FAR char *strndup(FAR const char *s, size_t size);
117 FAR const char *strerror(int);
124 size_t strlen(FAR const char *);
131 size_t strnlen(FAR const char *, size_t);
138 FAR char *strcat(FAR char *, FAR const char *);
145 FAR char *strncat(FAR char *, FAR const char *, size_t);
152 int strcmp(FAR const char *, FAR const char *);
159 int strncmp(FAR const char *, FAR const char *, size_t);
166 int strcasecmp(FAR const char *, FAR const char *);
173 int strncasecmp(FAR const char *, FAR const char *, size_t);
180 FAR char *strcpy(char *dest, FAR const char *src);
187 FAR char *stpcpy(char *dest, FAR const char *src);
194 FAR char *strncpy(char *, FAR const char *, size_t);
201 FAR char *strpbrk(FAR const char *, FAR const char *);
208 FAR char *strchr(FAR const char *s, int c);
215 FAR char *strrchr(FAR const char *s, int c);
222 size_t strspn(FAR const char *, FAR const char *);
229 size_t strcspn(FAR const char *, FAR const char *);
236 FAR char *strstr(FAR const char *, FAR const char *);
244 FAR char *strcasestr(FAR const char *, FAR const char *);
251 FAR char *strtok(FAR char *, FAR const char *);
258 FAR char *strtok_r(FAR char *, FAR const char *, FAR char **);
259 
266 FAR void *memchr(FAR const void *s, int c, size_t n);
273 FAR void *memccpy(FAR void *s1, FAR const void *s2, int c, size_t n);
280 int memcmp(FAR const void *s1, FAR const void *s2, size_t n);
287 FAR void *memcpy(FAR void *dest, FAR const void *src, size_t n);
294 FAR void *memmove(FAR void *dest, FAR const void *src, size_t count);
301 FAR void *memset(FAR void *s, int c, size_t n);
302 
312 size_t strlcpy(char *__restrict dest, const char *__restrict src, size_t size);
313 #undef EXTERN
314 #if defined(__cplusplus)
315 }
316 #endif
317 #endif /* __INCLUDE_STRING_H */
318 
FAR char * strncat(FAR char *, FAR const char *, size_t)
concatenate a string with part of another
size_t strcspn(FAR const char *, FAR const char *)
get the length of a complementary substring
FAR char * strtok(FAR char *, FAR const char *)
split string into tokens
FAR char * strcpy(char *dest, FAR const char *src)
copy a string and return a pointer to the end of the result
int strncasecmp(FAR const char *, FAR const char *, size_t)
case-insensitive string comparisons
FAR void * memchr(FAR const void *s, int c, size_t n)
find byte in memory
FAR char * strncpy(char *, FAR const char *, size_t)
copy fixed length string, returning a pointer to the array end
FAR char * strtok_r(FAR char *, FAR const char *, FAR char **)
split string into tokens
size_t strlen(FAR const char *)
get length of fixed size string
FAR void * memset(FAR void *s, int c, size_t n)
set bytes in memory
FAR void * memccpy(FAR void *s1, FAR const void *s2, int c, size_t n)
copy bytes in memory
size_t strnlen(FAR const char *, size_t)
get length of fixed size string
int strncmp(FAR const char *, FAR const char *, size_t)
compare part of two strings
size_t strspn(FAR const char *, FAR const char *)
get length of a substring
FAR char * strcat(FAR char *, FAR const char *)
concatenate two strings
int strcmp(FAR const char *, FAR const char *)
compare two strings
FAR char * stpcpy(char *dest, FAR const char *src)
copy a string and return a pointer to the end of the result
FAR char * strndup(FAR const char *s, size_t size)
duplicate a specific number of bytes from a string
size_t strlcpy(char *__restrict dest, const char *__restrict src, size_t size)
Copies up to size - 1 characters from the NUL-terminated string src to dst, NUL-terminating the resul...
int strcasecmp(FAR const char *, FAR const char *)
case-insensitive string comparisons
FAR char * strpbrk(FAR const char *, FAR const char *)
scan a string for a byte
FAR char * strstr(FAR const char *, FAR const char *)
find a substring
FAR char * strdup(FAR const char *s)
duplicate a specific number of bytes from a string
FAR char * strrchr(FAR const char *s, int c)
string scanning operation
FAR char * strcasestr(FAR const char *, FAR const char *)
locate a substring
FAR void * memmove(FAR void *dest, FAR const void *src, size_t count)
copy bytes in memory with overlapping areas
FAR void * memcpy(FAR void *dest, FAR const void *src, size_t n)
copy bytes in memory
FAR const char * strerror(int)
get error message string
int memcmp(FAR const void *s1, FAR const void *s2, size_t n)
compare bytes in memory
FAR char * strchr(FAR const char *s, int c)
string scanning operation