본과정에서의 첫 번째 과제 libft!
처음 시작할 때는 어려운 것들 투성이었는데, 통과하고 보니 어느새 명확하게 알게 된 점들이 몇 가지 있었다.
man 매뉴얼을 모조리 뒤져가며, 평가를 받다 어버버해가며 …
열심히 시행착오를 겪으면서 얻은 소중한 지식들을 간략하게 정리해 보고자 한다 🥊
mem
으로 시작하고 어떤 함수는 str
으로 시작하는 이유 🧐size_t
📐memcpy
대신 memmove
를 사용해라? 🚨File Descriptor
🗂[Linked List
와 Array
의 차이점 🛠](https://80000coding.notion.site/libft-f217ea68a2da4e9da1f503e66f0b705e)mem
으로 시작하고 어떤 함수는 str
으로 시작하는 이유 🧐Part1 에서 구현하는 C 표준 라이브러리 함수 중 일부는 이름이 mem
또는 str
으로 시작한다.
둘의 차이는 해당 함수가 특정 바이트를 기준으로 처리하냐, 문자열을 기준으로 처리하냐 였다.
str 으로 시작하는 함수
문자열을 받아서, 이 문자열의 끝을 널문자(\\0)
로 판단한다.
따라서 문자열이 널문자를 만났는지 아닌지를 핵심적인 조건으로 활용하여 함수를 구현한다.
strncmp 같이 size를 인자로 같이 받는 경우 size에 대한 조건 또한 포함되기도 한다.
mem 으로 시작하는 함수
메모리 영역을 가리키는 포인터 뿐만 아니라 처리해야 하는 바이트 수
를 인자로 함께 받는다.
이 경우 널문자에 상관없이 인자로 받은 바이트 수가 핵심적인 조건이 된다.
이에 따라 char *
형 뿐만 아니라 void *
형으로 받을 수 있는 데이터도 다룰 수 있게 된다!