42seoul

    [GET_NEXT_LINE] 구현 예시

    혹시나 문제가 된다면 바로 비공개 처리하겠습니다. 지적이나 댓글 환영합니다! 그저께 get_next_line의 구현을 끝내고 어제오늘 평가를 받아, gnl 과제를 보너스 점수 포함 115점으로 통과했다. 코드에 대한 이해가 낮아지기 전에 어서 코드리뷰를 하도록 해야겠다. 우선, get_next_line 과제에서는 3개의 파일을 구현하게끔한다. get_next_line.c, get_next_line_utils.c, get_next_line.h 를 구현해야한다. 보너스 파트에서는 여러개의 fd를 사용하여도 각 fd의 내용에 대한 스레드가 유지될 수 있도록 해야하는데, 이 경우에는 static 변수를 2차원 배열로 만들면 해결된다. 따라서 보너스 파트와 기본 파트의 함수 구성을 똑같이 하였으므로 보너스에 대한..

    [GET_NEXT_LINE] 구현 준비

    [GET_NEXT_LINE] 구현 준비

    혹시나 문제가 된다면 바로 비공개 처리하겠습니다. 지적이나 댓글 환영합니다! 과제 중에 동료평가용 설명 정리 차원으로 블로그 글을 작성하기 때문에, 통과 완료 전까지는 계속 글을 수정할 수도 있습니다. 양해바랍니다. 감사합니다. 참고로, 이 포스팅의 중요한 본론은 (5), (6), (7) 부터 나옵니다. libft가 조금 늦게 끝난 감이 있지만, get_next_line을 지금이라도 구현하게 되어서 다행이라고 생각한다. 처음에 get_next_line을 보고 좀 난감하다는 생각을 했다. 예를 들자면, "1줄씩 자른다" 라는 것은 문자열 포인터로 전체 문단이 주어진 경우에는 쉽다. 문자 "\n"를 기준으로, while문을 처음부터 문자열 끝까지 돌며 strdup() 함수 등을 사용하며 문자열을 분리해주면 ..

    malloc/calloc 관련 정리

    42seoul에서 libft 과제의 동료평가를 진행하다보니, 고수분들께 평가받으며 내가 몰랐던 개념의 허점에 대해 많이 알게 되었다. 그에 대하여 정리하여 스스로 개념을 보완해보려 한다. * malloc : 메모리를 할당 1) 프로토타입 #include void *malloc(size_t size); 2) 인자들 size : 메모리 블록의 크기(바이트 단위) 3) 리턴값 메모리 할당에 성공했을 경우 : 할당한 메모리 블록을 가르키는 포인터를 리턴 (해당 포인터의 타입은 언제나 (void *)형이므로, 사용자가 원하는 타입으로 캐스팅 해줘야 함) 매모리 할당에 실패했을 경우 : 널 포인터를 리턴 주소값을 반환받기 떄문에, 할당된 힙 메모리 영역에 접근하려면 포인터를 사용해야한다. 사용 후 반드시 free(..

    [Libft] C 언어 라이브러리 구현_BONUS_보너스 함수 구현2

    혹시나 문제가 된다면 바로 비공개 처리하겠습니다. 지적이나 댓글 환영합니다! 이번 포스팅에서는 보너스 파트의 함수를 이어서 구현해보았다. 보너스 파트는 연결리스트(랑크드리스트)를 이용한 기본적인 기능을 구현한 함수들을 구현하였다. 이후에도 많이 사용하게 될 것 같다. 참고로, 내가 정의한 libft.h 헤더에는 와 가 include 되어있다. 따라서 libft.h를 호출하면, 따로 정의하지 않고도 에 정의된 size_t 타입과 의 malloc/free를 사용할 수 있다. 또한 에 있는 write 함수 또한 사용할 수 있다. 또한 t_list 구조체도 정의하여, 보너스 함수 구현에 이를 사용하였다. (1) ft_lstdelone : 주어진 노드를 삭제 - 구현 코드 예시 : 1 2 3 4 5 6 7 8 #..

    [Libft] C 언어 라이브러리 구현_BONUS_보너스 함수 구현1

    [Libft] C 언어 라이브러리 구현_BONUS_보너스 함수 구현1

    혹시나 문제가 된다면 바로 비공개 처리하겠습니다. 지적이나 댓글 환영합니다! 이번 포스팅에서는 보너스 파트의 함수를 구현해보았다. 보너스 파트는 연결리스트(랑크드리스트)를 이용한 기본적인 기능을 구현한 함수들을 구현하였다. 이후에도 많이 사용하게 될 것 같다. 참고로, 내가 정의한 libft.h 헤더에는 와 가 include 되어있다. 따라서 libft.h를 호출하면, 따로 정의하지 않고도 에 정의된 size_t 타입과 의 malloc/free를 사용할 수 있다. 또한 에 있는 write 함수 또한 사용할 수 있다. 또한 t_list 구조체가 정의되어 있어 보너스 함수 구현에 이를 사용하였다. * 연결리스트란 무엇인가? 위키 백과의 정의 : 연결 리스트, 링크드 리스트(linked list)는 각 노드가..

    [Libft] C 언어 라이브러리 구현_Part2_추가함수 구현3

    [Libft] C 언어 라이브러리 구현_Part2_추가함수 구현3

    혹시나 문제가 된다면 바로 비공개 처리하겠습니다. 지적이나 댓글 환영합니다! 이번 포스팅에서는 이어서 part2의 함수를 구현해 보겠다. file descripter를 매개변수로 받아 write()를 사용하는 함수 4가지를 구현하였다. 주의사항이라고 적은 사항들이 대부분 내가 실수했으나 고쳐서 어떻게 해결했는 지에 대한 내용들이다. 참고로, 내가 정의한 libft.h 헤더에는 와 가 include 되어있다. 따라서 libft.h를 호출하면, 따로 정의하지 않고도 에 정의된 size_t 타입과 의 malloc/free를 사용할 수 있다. 또한 에 있는 write 함수 또한 사용할 수 있다. * fd (File descripter)란 무엇인가? 1) 시스템으로부터 할당 받은 파일을 대표하는 0이 아닌 정수 ..