Worldi.log
로그인
Worldi.log
로그인
get_next_line의 개요
Worldi
·
2021년 12월 6일
팔로우
0
42Seoul
get_next_line
0
42seoul
목록 보기
11/15
개요
변수
line : 반환 하게 될 라인.
backup : 라인 탐색의 시작을 의미하는 곳. line 의 버퍼라고 생각하면 됨.
buf : buf사이즈 만큼 읽어서 반환.
알고리즘
backup 이 이미 존재한다면, backup을 split_line 함수로 나눠서 개행기준으로 앞쪽은 라인으로, 뒤쪽은 backup 에다가 저장한다.
backup 이 존재하지 않는다면,
read를 통해 읽는다. 만약 읽었는데 파일 읽기에 실패하거나, buffer_size 가 음수가 들어온다면, 오류이므로 함수를 끝낸다.
read 함수를 통해 읽는 바이트가 존재할 때까지, 개행이 나타낼 때 까지 읽는다. 만약 개행이 나타나지 않는다면, 계속 backup 버퍼에 담는다. 그리고 개행이 나타나는 순간에 split_line 함수로 나눠서 앞쪽은 라인으로, 뒤쪽은 backup 에다가 저장한다.
만약, 바이트가 존재하지 않는다면, 파일 읽기가 끝났다는 이야기 이므로 backup 에 개행이 없어도 이를 반환시켜줘야 한다. 이를 추가한다.
Worldi
https://worldi.tistory.com/ 로 블로그 이전합니다.
팔로우
이전 포스트
Libft 개념 정리
다음 포스트
우분투에서 Memory leak 검사
0개의 댓글
댓글 작성