1. 프로토타입
size_t ft_strlcpy(char *dst, const char *src, size_t size)
#include <string.h>
size_t strlcpy(char * restrict dst, const char * restrict src, size_t dstsize)
- size_t
#inlcude <unistd.h> 필요함.
크기를 의미하는 변수로 사용.
이론상 가장 큰 사이즈를 담을 수 있는 unsigned 데이터 타입.
즉, 32비트 머신에서는 32비트 사이즈의 unsigned 정수형(unsigned int가 아니라 그냥 '정수'를 의미), 64비트 머신에서는 64비트 사이즈의 unsigned 정수형(unsigned long long)
- const char *str
문자열 str의 값 변경 불가능.(ex. str = "asdf"처럼 문자열 값 변경은 불가능.)
포인터만 변경 가능.(ex. str++처럼 포인터 값 변경은 가능.)
2. 용도
3. 리턴값
4. 코드 구현
#include "libft.h"
size_t ft_strlcpy(char *dst, const char *src, size_t size)
{
size_t srclen;
size_t t;
srclen = 0;
t = 0;
while (src[srclen] != '\0')
srclen++;
if (dst[0] == '\0' && src[0] == '\0')
return (0);
while (t + 1 < size && src[t] != '\0')
{
dst[t] = src[t];
t++;
}
if (size > 0)
dst[t] = '\0';
return (srclen);
}
5. 코드 설명