1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
| | #ifndef __STDC_VERSION_STRING_H__
#define __STDC_VERSION_STRING_H__ 202311L
#ifdef __cplusplus
extern "C" {
#endif
#include <features.h>
#if __cplusplus >= 201103L
#define NULL nullptr
#elif defined(__cplusplus)
#define NULL 0L
#else
#define NULL ((void*)0)
#endif
#define __NEED_size_t
#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
|| defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
|| defined(_BSD_SOURCE)
#define __NEED_locale_t
#endif
#include <bits/alltypes.h>
void *memcpy (void *__restrict, const void *__restrict, size_t);
void *memmove (void *, const void *, size_t);
void *memset (void *, int, size_t);
int memcmp (const void *, const void *, size_t);
void *(memchr) (const void *, int, size_t);
char *(strchr) (const char *, int);
char *(strrchr) (const char *, int);
char *(strpbrk) (const char *, const char *);
char *(strstr) (const char *, const char *);
#if __STDC_VERSION__ > 201112L
# define memchr(S, C, N) \
_Generic( \
/* ensure conversion to a void pointer */ \
1 ? (S) : (void*)1, \
void const*: (void const*)memchr((void const*)(S), (C), (N)), \
/* volatile qualification of *S is an error for this call */ \
default: memchr((S), (C), (N)) \
)
# define strchr(S, C) \
_Generic( \
(S), \
void const*: (char const*)strchr((char const*)(S), (C)), \
char const*: (char const*)strchr((char const*)(S), (C)), \
/* volatile qualification of *S is an error for this call */ \
default: strchr((S), (C)) \
)
# define strrchr(S, C) \
_Generic( \
(S), \
void const*: (char const*)strrchr((char const*)(S), (C)), \
char const*: (char const*)strrchr((char const*)(S), (C)), \
/* volatile qualification of *S is an error for this call */ \
default: strrchr((S), (C)) \
)
# define strpbrk(S, A) \
_Generic( \
(S), \
void const*: (char const*)strpbrk((char const*)(S), (A)), \
char const*: (char const*)strpbrk((char const*)(S), (A)), \
/* volatile qualification of *S is an error for this call */ \
default: strpbrk((S), (A)) \
)
# define strstr(H, N) \
_Generic( \
(H), \
void const*: (char const*)strstr((char const*)(H), (N)), \
char const*: (char const*)strstr((char const*)(H), (N)), \
/* volatile qualification of *S is an error for this call */ \
default: strstr((H), (N)) \
)
#endif
char *strcpy (char *__restrict, const char *__restrict);
char *strncpy (char *__restrict, const char *__restrict, size_t);
char *strcat (char *__restrict, const char *__restrict);
char *strncat (char *__restrict, const char *__restrict, size_t);
int strcmp (const char *, const char *);
int strncmp (const char *, const char *, size_t);
int strcoll (const char *, const char *);
size_t strxfrm (char *__restrict, const char *__restrict, size_t);
size_t strcspn (const char *, const char *);
size_t strspn (const char *, const char *);
char *strtok (char *__restrict, const char *__restrict);
size_t strlen (const char *);
char *strerror (int);
char *strdup (const char *);
char *strndup (const char *, size_t);
void *memccpy (void *__restrict, const void *__restrict, int, size_t);
#if defined(_BSD_SOURCE) || defined(_GNU_SOURCE)
#include <strings.h>
#endif
#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
|| defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
|| defined(_BSD_SOURCE)
char *strtok_r (char *__restrict, const char *__restrict, char **__restrict);
int strerror_r (int, char *, size_t);
char *stpcpy(char *__restrict, const char *__restrict);
char *stpncpy(char *__restrict, const char *__restrict, size_t);
size_t strnlen (const char *, size_t);
char *strsignal(int);
char *strerror_l (int, locale_t);
int strcoll_l (const char *, const char *, locale_t);
size_t strxfrm_l (char *__restrict, const char *__restrict, size_t, locale_t);
void *memmem(const void *, size_t, const void *, size_t);
#endif
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
char *strsep(char **, const char *);
size_t strlcat (char *, const char *, size_t);
size_t strlcpy (char *, const char *, size_t);
void explicit_bzero (void *, size_t);
#endif
#ifdef _GNU_SOURCE
#define strdupa(x) strcpy(alloca(strlen(x)+1),x)
int strverscmp (const char *, const char *);
char *strchrnul(const char *, int);
char *strcasestr(const char *, const char *);
void *memrchr(const void *, int, size_t);
void *mempcpy(void *, const void *, size_t);
#ifndef __cplusplus
char *basename();
#endif
#endif
#ifdef __cplusplus
}
#endif
#endif
|