1 #pragma once 2 3 #ifdef __cplusplus 4 extern "C" { 5 #endif 6 7 #include <features.h> 8 #include <bits/null.h> 9 10 #define __NEED_size_t 11 12 #include <bits/alltypes.h> 13 14 void* memcpy(void* __restrict, const void* __restrict, size_t); 15 void* memmove(void*, const void*, size_t); 16 void* memset(void*, int, size_t); 17 int memcmp(const void*, const void*, size_t); 18 void* memchr(const void*, int, size_t); 19 20 char* strcpy(char* __restrict, const char* __restrict); 21 char* strncpy(char* __restrict, const char* __restrict, size_t); 22 23 char* strcat(char* __restrict, const char* __restrict); 24 char* strncat(char* __restrict, const char* __restrict, size_t); 25 26 int strcmp(const char*, const char*); 27 int strncmp(const char*, const char*, size_t); 28 29 int strcoll(const char*, const char*); 30 size_t strxfrm(char* __restrict, const char* __restrict, size_t); 31 32 char* strchr(const char*, int); 33 char* strrchr(const char*, int); 34 35 size_t strcspn(const char*, const char*); 36 size_t strspn(const char*, const char*); 37 char* strpbrk(const char*, const char*); 38 char* strstr(const char*, const char*); 39 char* strtok(char* __restrict, const char* __restrict); 40 41 size_t strlen(const char*); 42 43 char* strerror(int); 44 45 #if defined(_BSD_SOURCE) || defined(_GNU_SOURCE) 46 #include <strings.h> 47 #endif 48 49 #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \ 50 defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 51 char* strtok_r(char* __restrict, const char* __restrict, char** __restrict); 52 int strerror_r(int, char*, size_t); 53 char* stpcpy(char* __restrict, const char* __restrict); 54 char* stpncpy(char* __restrict, const char* __restrict, size_t); 55 size_t strnlen(const char*, size_t); 56 char* strdup(const char*); 57 char* strndup(const char*, size_t); 58 char* strsignal(int); 59 #endif 60 61 #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 62 void* memccpy(void* __restrict, const void* __restrict, int, size_t); 63 #endif 64 65 #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 66 char* strsep(char**, const char*); 67 size_t strlcat(char*, const char*, size_t); 68 size_t strlcpy(char*, const char*, size_t); 69 #endif 70 71 #ifdef _GNU_SOURCE 72 #define strdupa(x) strcpy(alloca(strlen(x) + 1), x) 73 int strverscmp(const char*, const char*); 74 char* strchrnul(const char*, int); 75 char* strcasestr(const char*, const char*); 76 void* memmem(const void*, size_t, const void*, size_t); 77 void* memrchr(const void*, int, size_t); 78 void* mempcpy(void*, const void*, size_t); 79 #ifndef __cplusplus 80 char* basename(char*); 81 #endif 82 #endif 83 84 #ifdef __cplusplus 85 } 86 #endif 87