Skip to content

Latest commit

 

History

History
42 lines (26 loc) · 2.86 KB

README.md

File metadata and controls

42 lines (26 loc) · 2.86 KB

Get Next Line

이 프로젝트의 목적은 파일 디스크립터로부터 읽혀진, 개행으로 끝나는 한 줄을 반환하는 함수를 코드화 하는 것이다.
이 프로젝트를 통해 C 프로그래밍에 있어서 아주 흥미롭고 새로운 개념인 '정적 변수'를 배울 수 있다.

Mandatory part


함수 이름 get_next_line
프로토타입 char *get_next_line(int fd);
제출할 파일 get_next_line.c, get_next_line_utils.c, get_next_line.h
매개변수 읽어들일 파일의 디스크립터 (서술자)
반환값 읽혀진 라인 : 한 줄이 제대로 읽힘
NULL : 읽을 라인이 더이상 없거나 에러 발생
사용가능한
외부 함수
read, malloc, free
설명 파일 디스크립터로부터 한 줄을 읽고,
반환하는 함수를 작성하시오.

get_next_line()을 (반복문 등을 통해) 여러 번 호출할 때마다, 함수는 한 번에 한 줄씩 파일 디스크립터가 가리키는 텍스트 파일을 읽을 수 있어야 합니다.

여러분의 함수는 방금 읽어들인 문자열 한 줄을 반환하여야 합니다. 더이상 읽어올 것이 없거나 에러가 발생하면 NULL을 반환하여야 합니다.

파일에서 읽을 때, 표준입력으로부터 읽어들일 때 모두 함수가 예상대로 동작하는지 확인하십시오.

중요: 파일에 끝까지 도달하였고 \n이 존재하지 않을때를 제외하고, 반환하는 문자열에는 \n이 포함되어야 합니다.

헤더 파일인, get_next_line.h에는 적어도 get_next_line()의 프로토타입이 존재하여야 합니다.

get_next_line_utils.c 파일에 필요한 모든 헬퍼 함수들을 추가하세요.


Bonus part


다음은 보너스 파트의 요구사항입니다:

정적 변수를 하나만 사용하여 get_next_line()을 개발하세요. 당신의 get_next_line()이 여러 개의 파일 descriptor를 한번에 관리할수 있어야 합니다. 예를 들어, 파일 디스크립터 3, 4, 5에 접근 가능한 경우, descriptor나 다른 줄에서의 fd의 reading thread를 잃지 않은 채로 각 호출당 다른 fd를 읽을수 있어야 합니다.
이는 get_next_line()을 호출하여 fd 3, fd 4, 다음에 5 그 다음에 다시 3, 4, 등등을 읽을 수 있어야 합니다.