반응형

프로그래밍 30

strlcat 함수

#include size_t strlcat(char *dst, const char *src, size_t size); 이 함수는 strcat 함수와 동일하다. 보안 목적을 위해 strcat 대신 사용할 목적으로 만들어졌다. dst의 기존 데이터에 src 데이터를 붙여 넣는다. size 만큼 여기서 중요한 건 size이다. size = dst 길이 + 붙일 데이터 길이 + NULL 값을 넣어야 한다. dst 길이보다 작으면 src 데이터가 넣어지진 않는다. 즉, size는 dst 길이 + NULL 길이보다 클 때부터 src 데이터가 들어간다. 예를 들어 dst의 길이가 5이고 src의 길이가 4이면 size의 길이가 4이면 dst 길이보다 작으므로 src 데이터가 들어가지 않는다. src 데이터를 넣으려면..

strlcpy 함수

#include size_t strlcpy(char *dst, const char *src, size_t size); 이 함수는 strcpy랑 똑같이 데이터를 복사하는 건데 보안 목적으로 strcpy를 대신할 함수로 만들어졌다. src에서 dst로 값을 복사하는데 size길이 만큼 한다. 여기서 size는 문자열 끝의 NULL 까지 포함한 길이를 넣어줘야한다. 만약 size에 1을 넣으면 dst에 NULL만 들어가있다. size에 2를 넣을 때부터 src 1바이트와 NULL이 dst에 들어가있다. 반환 값 이 값은 dst의 길이 값이다. 복사되어진 데이터의 길이이므로 NULL은 빠진다. size - 1 값이라고 생각하면 이해하기 편할 것이다.

반응형