개요
Get_Next_Line 과제의 내용과 과제를 해결하기 위해 필요한 지식에 대해 살펴보겠습니다.
GNL 프로젝트 요구사항 분석
프로젝트의 개요
파일 디스크립터에서 읽은 파일의 내용을 개행 ‘\n’을 기준으로 나누어 반환하는 함수를 작성하는 것이다.
프로젝트의 목표
C 프로그래밍에서 아주 흥미로운 새로운 개념인 ‘정적 변수’를 배울 수 있도록 할 것입니다.
또한 파일 입출력에 대한 이해를 하도록 할 것입니다.
프로젝트의 특이사항
필요한 경우 heap에 할당된 모든 메모리 공간은 적절하게 해제되어야 합니다. 메모리 누수는 용납되지 않을 것입니다.
get_next_line 함수를 반복문 안에서 호출하면 파일 디스크립터에서 사용할 수 있는 텍스트를 EOF가 올때까지 한 번에 한 줄씩 읽을 수 있을 것입니다.
get_next_line.c가 동작하는 데 필요한 함수들이 들어있는 get_next_line_utils.c 파일을 추가해야 합니다.
하나의 정적변수로 get_next_line 성공하는 것을 목표로합니다.
각 디스크립터의 리딩 쓰레드를 잃지 않고 get_next_line을 사용하여 다중 파일 디스크립터를 관리 할 수 있어야합니다.
get_next_line.h
DESCRIPTION
get_next_line 과제를 해결하기 위해 필요한 함수, 매크로, 라이브러리를 선언한 헤더파일이다.
get_next_line.h CODE
1 |
|
설명
get_next_line.c
SYNOPSIS
함수 원형
: int get_next_line(int fd, char **line);int fd
:char **line
:리턴값
: 1: 한 라인이 읽혔을 때. // 0: EOF에 도달했을 때 // -1: 에러가 발생했을 때
DESCRIPTION
파일 디스크럽터로부터 읽어 온 하나의 라인(newline 없이)을 반환하는 함수 작성
get_next_line.c CODE
1 |
|
설명
get_next_line_utils.c
SYNOPSIS
사용한 함수
: my_strlen, my_memcpy, my_strjoin, my_strndup, my_strnewlinemy_strlen
:my_memcpy
:my_strjoin
:my_strndup
:my_strnewline
:
DESCRIPTION
get_next_line 과제를 해결하기 위해 필요한 함수들을 구현해 놓은 소스파일
get_next_line_utils.c CODE
1 |
|
설명