일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 이지젯
- get_next_line
- push swap 설명
- printf
- pipex
- 파리 피크닉
- 서울42
- ecole42
- libft
- 지베르니
- 42
- 42 so_long
- so_long
- push swap
- 포르투갈 여행
- 굿노트 스티커
- 42 libft
- get next line
- 와인 고르기
- gnl
- ft_printf
- str함수
- 지베르니 가을
- 에꼴42
- 알고리즘 기초
- 42 pipex
- 와인선별방법
- 지베르니 계절 추천
- 지베르니 여름
- pipex 42
- Today
- Total
뇌 마음 반반저장소
[42_GNL] 시작하며 본문
Chapter I
Goals
This project will not only allow you to add a very convenient function to your collection, but it will also make you learn a highly interesting new concept in C programming: static variables.
이 프로젝트를 통해 (libft) 컬렉션에 매우 편리한 기능을 추가할 수 있을 뿐만 아니라, C 프로그래밍의 매우 흥미로운 새로운 개념인 정적 변수를 배울 수 있습니다.
Chapter II
Common Instructions
👇아래의 포스팅과 동일한 내용입니다!👇
Chapter III
Mandatory part
Program name 프로그램이름
get_next_line
Prototype 원래 형태
char *get_next_line(int fd);
Turn in files 반환 파일
get_next_line.c, get_next_line_utils.c, get_next_line.h
Parameters 매개변수
fd: The file descriptor to read from
읽을 파일
Return value 반환 값
Read line: correct behavior
라인 읽기 (옳은 동작일 때)
NULL: there is nothing else to read, or an error occurred
NULL (다른 읽을 내용이 없거나 오류가 발생했을 때)
External functs. 사용 가능한 함수
read, malloc, free
Description 설명
Write a function that returns a line read from a file descriptor
파일 설명자에서 읽은 행을 반환하는 함수를 작성합니다.
Get Next Line. Reading a line from a fd is way too tedious.
겟 넥스트 라인. FD의 한 줄을 읽는 것은 너무 지루행. (🙄)
• Repeated calls (e.g., using a loop) to your get_next_line() function should let you read the text file pointed to by the file descriptor, one line at a time.
get_next_line() 함수에 반복 호출(예: 루프 사용)을 하면 파일 설명자가 가리키는 텍스트 파일을 한 번에 한 줄씩 읽을 수 있습니다.
• Your function should return the line that was read. If there is nothing else to read or if an error occurred, it should return NULL.
• 함수는 읽은 행을 반환해야 합니다. 읽을 내용이 없거나 오류가 발생한 경우 NULL을 반환해야 합니다.
• Make sure that your function works as expected both when reading a file and when reading from the standard input.
파일을 읽을 때와 표준 입력에서 읽을 때 모두 기능이 예상대로 작동하는지 확인하십시오.
• Please note that the returned line should include the terminating \n character, except if the end of file was reached and does not end with a \n character.
반환된 행에는 파일 끝에 도달하여 \n 문자로 끝나지 않는 경우를 제외하고 종료 문자가 포함되어야 합니다.
• Your header file get_next_line.h must at least contain the prototype of the get_next_line() function.
헤더 파일 get_next_line.h에는 적어도 get_next_line() 함수의 프로토타입이 포함되어 있어야 합니다.
• Add all the helper functions you need in the get_next_line_utils.c file.
get_next_line_utils.c 파일에 필요한 모든 도우미 기능을 추가합니다.
ℹ️ A good start would be to know what a static variable is.
정적 변수가 무엇인지 아는 것이 좋은 시작입니다.
• Because you will have to read files in get_next_line(), add this option to your compiler call: -D BUFFER_SIZE=n It will define the buffer size for read(). The buffer size value will be modified by your peer-evaluators and the Moulinette in order to test your code.
get_next_line()의 파일을 읽어야 하므로 컴파일러 호출에 이 옵션을 추가하십시오. -D BUFFER_SIZE=n 읽기 버퍼 크기가 정의됩니다. 코드를 테스트하기 위해 피어 평가자와 Moulinette에 의해 버퍼 크기 값은 수정됩니다.
• You will compile your code as follows (a buffer size of 42 is used as an example): cc -Wall -Wextra -Werror -D BUFFER_SIZE=42 <files>.c
당신은 당신의 코드를 다음과 같이 컴파일할 것입니다(예를 들어 버퍼 크기 42가 사용됩니다): cc - Wall -Wextra -Werror -D BUFFER_SIZE=42 <files>.c
• We consider that get_next_line() has an undefined behavior if the file pointed to by the file descriptor changed since the last call whereas read() didn’t reach the end of file.
fd가 가리키는 파일이 마지막 호출 이후 변경되었는데 read()가 파일 끝에 도달하지 못했다면, get_next_line()은 정의되지 않은 동작을 한다고 간주합니다.
• We also consider that get_next_line() has an undefined behavior when reading a binary file. However, you can implement a logical way to handle this behavior if you want to.
• 또한 이진 파일을 읽을 때 get_next_line()에 정의되지 않은 동작이 있는 것으로 간주합니다. 그러나 원하는 경우 이 동작을 처리하는 논리적 방법을 구현할 수 있습니다.
💡Does your function still work if the BUFFER_SIZE value is 9999? If it is 1? 10000000? Do you know why?
BUFFER_SIZE 값이 9999인 경우에도 기능이 계속 작동합니까? 1? 10000000은? 왠지 알아요?
ℹ️ Try to read as little as possible each time get_next_line() is called. If you encounter a new line, you have to return the current line. Don’t read the whole file and then process each line.
get_next_line()이 호출될 때마다 가능한 한 적게 읽도록 하십시오. 새 줄이 표시되면 현재 줄을 반환해야 합니다. 전체 파일을 읽지 말고 각 줄을 처리하세요.
Forbidden 금지!
• You are not allowed to use your libft in this project.
이 프로젝트에서 libft를 사용할 수 없습니다.
• lseek() is forbidden.
Iseek()는 금지되어 있습니다.
• Global variables are forbidden.
전역 변수는 사용할 수 없습니다.
'42 > get_next_line' 카테고리의 다른 글
[42_GNL] 코딩하기 (0) | 2022.12.22 |
---|---|
[42_GNL] 구조 파헤치기 (0) | 2022.12.20 |
[42_GNL] get_next_line 개념 이해하기 (open, read, 버퍼사이즈) (0) | 2022.12.19 |