mirror of
https://github.com/checkpoint-restore/criu
synced 2025-08-23 02:17:22 +00:00
33 lines
741 B
C
33 lines
741 B
C
|
/*
|
||
|
* Adopted from linux kernel
|
||
|
*/
|
||
|
#include <sys/types.h>
|
||
|
#include <string.h>
|
||
|
|
||
|
#include "string.h"
|
||
|
|
||
|
#ifndef CONFIG_HAS_STRLCPY
|
||
|
/**
|
||
|
* strlcpy - Copy a %NUL terminated string into a sized buffer
|
||
|
* @dest: Where to copy the string to
|
||
|
* @src: Where to copy the string from
|
||
|
* @size: size of destination buffer
|
||
|
*
|
||
|
* Compatible with *BSD: the result is always a valid
|
||
|
* NUL-terminated string that fits in the buffer (unless,
|
||
|
* of course, the buffer size is zero). It does not pad
|
||
|
* out the result like strncpy() does.
|
||
|
*/
|
||
|
size_t strlcpy(char *dest, const char *src, size_t size)
|
||
|
{
|
||
|
size_t ret = strlen(src);
|
||
|
|
||
|
if (size) {
|
||
|
size_t len = (ret >= size) ? size - 1 : ret;
|
||
|
memcpy(dest, src, len);
|
||
|
dest[len] = '\0';
|
||
|
}
|
||
|
return ret;
|
||
|
}
|
||
|
#endif
|