mirror of
https://github.com/EnderIce2/Fennix.git
synced 2025-07-01 18:39:16 +00:00
feat(userspace/libc): implement all <string.h> functions
Implement all string.h functions except some which require locale which is not implemented yet Signed-off-by: EnderIce2 <enderice2@protonmail.com>
This commit is contained in:
@ -26,43 +26,43 @@ extern "C"
|
||||
#include <stddef.h>
|
||||
#include <locale.h>
|
||||
|
||||
void *memccpy(void *restrict, const void *restrict, int, size_t);
|
||||
void *memchr(const void *, int, size_t);
|
||||
int memcmp(const void *, const void *, size_t);
|
||||
void *memccpy(void *restrict s1, const void *restrict s2, int c, size_t n);
|
||||
void *memchr(const void *s, int c, size_t n);
|
||||
int memcmp(const void *s1, const void *s2, size_t n);
|
||||
void *memcpy(void *restrict s1, const void *restrict s2, size_t n);
|
||||
void *memmem(const void *, size_t, const void *, size_t);
|
||||
void *memmove(void *, const void *, size_t);
|
||||
void *memset(void *, int, size_t);
|
||||
char *stpcpy(char *restrict, const char *restrict);
|
||||
char *stpncpy(char *restrict, const char *restrict, size_t);
|
||||
char *strcat(char *restrict, const char *restrict);
|
||||
void *memmem(const void *haystack, size_t haystacklen, const void *needle, size_t needlelen);
|
||||
void *memmove(void *s1, const void *s2, size_t n);
|
||||
void *memset(void *s, int c, size_t n);
|
||||
char *stpcpy(char *restrict s1, const char *restrict s2);
|
||||
char *stpncpy(char *restrict s1, const char *restrict s2, size_t n);
|
||||
char *strcat(char *restrict s1, const char *restrict s2);
|
||||
char *strchr(const char *s, int c);
|
||||
int strcmp(const char *s1, const char *s2);
|
||||
int strcoll(const char *s1, const char *s2);
|
||||
int strcoll_l(const char *, const char *, locale_t);
|
||||
int strcoll_l(const char *s1, const char *s2, locale_t locale);
|
||||
char *strcpy(char *restrict s1, const char *restrict s2);
|
||||
size_t strcspn(const char *s1, const char *s2);
|
||||
char *strdup(const char *);
|
||||
char *strerror(int);
|
||||
char *strerror_l(int, locale_t);
|
||||
int strerror_r(int, char *, size_t);
|
||||
size_t strlcat(char *restrict, const char *restrict, size_t);
|
||||
size_t strlcpy(char *restrict, const char *restrict, size_t);
|
||||
char *strdup(const char *s);
|
||||
char *strerror(int errnum);
|
||||
char *strerror_l(int errnum, locale_t locale);
|
||||
int strerror_r(int errnum, char *strerrbuf, size_t buflen);
|
||||
size_t strlcat(char *restrict dst, const char *restrict src, size_t dstsize);
|
||||
size_t strlcpy(char *restrict dst, const char *restrict src, size_t dstsize);
|
||||
size_t strlen(const char *s);
|
||||
char *strncat(char *restrict, const char *restrict, size_t);
|
||||
char *strncat(char *restrict s1, const char *restrict s2, size_t n);
|
||||
int strncmp(const char *s1, const char *s2, size_t n);
|
||||
char *strncpy(char *restrict s1, const char *restrict s2, size_t n);
|
||||
char *strndup(const char *, size_t);
|
||||
size_t strnlen(const char *, size_t);
|
||||
char *strndup(const char *s, size_t size);
|
||||
size_t strnlen(const char *s, size_t maxlen);
|
||||
char *strpbrk(const char *s1, const char *s2);
|
||||
char *strrchr(const char *, int);
|
||||
char *strrchr(const char *s, int c);
|
||||
char *strsignal(int signum);
|
||||
size_t strspn(const char *s1, const char *s2);
|
||||
char *strstr(const char *, const char *);
|
||||
char *strstr(const char *s1, const char *s2);
|
||||
char *strtok(char *restrict s, const char *restrict sep);
|
||||
char *strtok_r(char *restrict s, const char *restrict sep, char **restrict state);
|
||||
size_t strxfrm(char *restrict, const char *restrict, size_t);
|
||||
size_t strxfrm_l(char *restrict, const char *restrict, size_t, locale_t);
|
||||
size_t strxfrm(char *restrict s1, const char *restrict s2, size_t n);
|
||||
size_t strxfrm_l(char *restrict s1, const char *restrict s2, size_t n, locale_t locale);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
Reference in New Issue
Block a user