Add strlcpy

This commit is contained in:
Marlon Beijer 2024-09-22 12:59:28 +02:00
parent a91e7b68b4
commit c3a5fe7612
No known key found for this signature in database
GPG Key ID: A901E732F834F916
3 changed files with 27 additions and 0 deletions

View File

@ -71,6 +71,7 @@ __stdargs size_t strlen_plus_one(const char *string);
__stdargs char *strcpy(char *, const char *); __stdargs char *strcpy(char *, const char *);
__stdargs char *strlwr(char *s); __stdargs char *strlwr(char *s);
__stdargs char *stpcpy(char *dst, const char *src); __stdargs char *stpcpy(char *dst, const char *src);
__stdargs size_t strlcpy(char * dst, const char * src, size_t maxlen);
__stdargs void *mempcpy(void *, const void *, size_t); __stdargs void *mempcpy(void *, const void *, size_t);
#else #else
#include "strsup.h" #include "strsup.h"

View File

@ -0,0 +1,13 @@
#include <ctype.h>
#include <string.h>
size_t strlcpy(char * dst, const char * src, size_t maxlen) {
const size_t srclen = strlen(src);
if (srclen + 1 < maxlen) {
memcpy(dst, src, srclen + 1);
} else if (maxlen != 0) {
memcpy(dst, src, maxlen - 1);
dst[maxlen-1] = '\0';
}
return srclen;
}

View File

@ -0,0 +1,13 @@
#include <ctype.h>
#include <string.h>
size_t strlcpy(char * dst, const char * src, size_t maxlen) {
const size_t srclen = strlen(src);
if (srclen + 1 < maxlen) {
memcpy(dst, src, srclen + 1);
} else if (maxlen != 0) {
memcpy(dst, src, maxlen - 1);
dst[maxlen-1] = '\0';
}
return srclen;
}