evil: add strndup().

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
This commit is contained in:
Michelle Legrand 2015-02-12 14:45:07 +01:00 committed by Cedric BAIL
parent b36e2fc701
commit a0b6f87c44
2 changed files with 31 additions and 0 deletions

View File

@ -11,6 +11,21 @@
*
*/
char *
strndup(const char *str, size_t n)
{
size_t slen = strlen(str);
char *ret;
if (slen > n) slen = n;
ret = malloc (slen + 1);
if (!ret) return NULL;
if (slen > 0) memcpy(ret, str, slen);
ret[slen] = '\0';
return ret;
}
int ffs(int i)
{
int size;

View File

@ -18,6 +18,22 @@
* bit related functions
*
*/
/**
* @brief Duplicate a string
*
* @param str String to be duplicated
* @param n size of new duplicated string
* @return The strndup() function returns a pointer to the duplicated string, or NULL if insufficient memory was available.
*
* This function returns a pointer to a new string which is a duplicate of the string str,
* but only copies at most n bytes. If str is longer than n, only n bytes are copied,
* and a terminating null byte ('\0') is added.
*
* Conformity: BSD
*
* Supported OS: Windows XP.
*/
EAPI char *strndup(const char *str, size_t n);
/**
* @brief Return the position of the first (least significant) bit set in a word