1#ifndef _STRING_H 2#define _STRING_H 3 4#ifdef __cplusplus 5extern "C" { 6#endif 7 8#include <features.h> 9 10#if __cplusplus >= 201103L 11#define NULL nullptr 12#elif defined(__cplusplus) 13#define NULL 0L 14#else 15#define NULL ((void*)0) 16#endif 17 18#define __NEED_size_t 19#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ 20 || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ 21 || defined(_BSD_SOURCE) 22#define __NEED_locale_t 23#endif 24 25#include <bits/alltypes.h> 26 27void *memcpy (void *__restrict, const void *__restrict, size_t); 28void *memmove (void *, const void *, size_t); 29void *memset (void *, int, size_t); 30int memcmp (const void *, const void *, size_t); 31void *memchr (const void *, int, size_t); 32 33char *strcpy (char *__restrict, const char *__restrict); 34char *strncpy (char *__restrict, const char *__restrict, size_t); 35 36char *strcat (char *__restrict, const char *__restrict); 37char *strncat (char *__restrict, const char *__restrict, size_t); 38 39int strcmp (const char *, const char *); 40int strncmp (const char *, const char *, size_t); 41 42int strcoll (const char *, const char *); 43size_t strxfrm (char *__restrict, const char *__restrict, size_t); 44 45char *strchr (const char *, int); 46char *strrchr (const char *, int); 47 48size_t strcspn (const char *, const char *); 49size_t strspn (const char *, const char *); 50char *strpbrk (const char *, const char *); 51char *strstr (const char *, const char *); 52char *strtok (char *__restrict, const char *__restrict); 53 54size_t strlen (const char *); 55 56char *strerror (int); 57 58#if defined(_BSD_SOURCE) || defined(_GNU_SOURCE) 59#include <strings.h> 60#endif 61 62#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ 63 || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ 64 || defined(_BSD_SOURCE) 65char *strtok_r (char *__restrict, const char *__restrict, char **__restrict); 66int strerror_r (int, char *, size_t); 67char *stpcpy(char *__restrict, const char *__restrict); 68char *stpncpy(char *__restrict, const char *__restrict, size_t); 69size_t strnlen (const char *, size_t); 70char *strdup (const char *); 71char *strndup (const char *, size_t); 72char *strsignal(int); 73char *strerror_l (int, locale_t); 74int strcoll_l (const char *, const char *, locale_t); 75size_t strxfrm_l (char *__restrict, const char *__restrict, size_t, locale_t); 76void *memmem(const void *, size_t, const void *, size_t); 77#endif 78 79#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ 80 || defined(_BSD_SOURCE) 81void *memccpy (void *__restrict, const void *__restrict, int, size_t); 82#endif 83 84#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 85char *strsep(char **, const char *); 86size_t strlcat (char *, const char *, size_t); 87size_t strlcpy (char *, const char *, size_t); 88void explicit_bzero (void *, size_t); 89#endif 90 91#ifdef _GNU_SOURCE 92#define strdupa(x) strcpy(alloca(strlen(x)+1),x) 93int strverscmp (const char *, const char *); 94char *strchrnul(const char *, int); 95char *strcasestr(const char *, const char *); 96void *memrchr(const void *, int, size_t); 97void *mempcpy(void *, const void *, size_t); 98#ifndef __cplusplus 99char *basename(); 100#endif 101#endif 102 103#ifndef __LITEOS__ 104#include <fortify/string.h> 105#endif 106#ifdef __cplusplus 107} 108#endif 109 110#endif 111