본문 바로가기

42Seoul52

ft_printf개념 ft_printf? int ft_printf(const char *str, ...) ft_printf, 이하 fp는 c의 printf함수를 구현해보는 과제이다. ft_printf 과제에 필요한 개념들 가변인자 매크로 함수 / 인라인 함수 Printf - Format Printf - Option Escape squence Parsing 가변인자(Variable Argument) ft_printf의 매개변수 부분을 보면 명확한 변수 대신 ...이 들어가 있는 것을 볼 수 있다. 이는 변수의 개수와 타입이 정해져있지 않다는 의미이며, 이렇게 함수에 들어가는 인수가 변하는 것을 가변인자라고 한다. C에는 가변 인자를 사용하기 위한 매크로들이 stdarg.h 헤더에 정의되어있으며, 아래와 같은 매크로들을 통해 가.. 2023. 2. 16.
gnl보너스 get_next_line 구성 get_next_line 과제에서는 총 세가지 파일을 제출해야한다. get_next_line.c, get_next_line_utils.c, get_next_line.h. libft를 사용할 수 없는 대신 _utils.c가 허용되어 총 10개의 함수를 사용할 수 있다. 연결 리스트를 이용하여 기능을 구현하였으며, 사용한 함수들은 다음과 같다. char*get_next_line(int fd) t_list*add_fd_remain(t_list *remain, int fd) static char*check_free(t_list *rm, t_list **head) static char*check_remain(int fd, t_list *remain) static char*make_n.. 2023. 2. 16.
gnl필수 get_next_line 구성 get_next_line 과제에서는 총 세가지 파일을 제출해야한다. get_next_line.c, get_next_line_utils.c, get_next_line.h. libft를 사용할 수 없는 대신 _utils.c가 허용되어 총 10개의 함수를 사용할 수 있다. 배열을 이용하여 기능을 구현하였으며, 사용한 함수들은 다음과 같다. char*get_next_line(int fd) static char*check_remain(int fd, char *remain) static char*make_next_line(char *remain) static char*update_remain(char *remain) size_tft_strlen(const char *str); char.. 2023. 2. 16.
gnl개념 get_next_line? char *get_next_line(int fd); get_next_line, 이하 gnl은 매개변수 fd로 받아온 숫자에 해당하는 파일 디스크립터의 텍스트에서 개행문자 \n으로 구분되는 한 줄의 문자열을 반환하는 함수이다. 다소 간단해보이는 목표에 비해 이것저것 고려할게 많아 구현이 그리 쉽지만은 않았다. gnl 과제에 필요한 개념들 파일 디스크립터 read 함수 메모리 영역 정적 변수 메모리 누수 입출력 리다이렉션 File descriptor? 간략하게 짚고 넘어간 적이 있다 참고한 블로그 링크 엄청나게 정리가 잘 되어있는 블로그 File descriptor란 리눅스 / 유닉스 계열 시스템에서 사용되는 개념이다. 시스템의 프로세스(process)가 파일(file)을 다룰 때.. 2023. 2. 16.