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