Reading a File with fgets

The fgets function is useful when you want to read one line (with a maximum length) at a time. It has the following prototype:

char * fgets(char * str, int size, FILE * stream);

This function takes three arguments:

  1. First Argument: A pointer to an array (str) where the characters read from the file will be stored. For example, fgets will write the data into str[0], str[1], str[2], and so on.
  2. Second Argument: The size of the array str. This argument specifies the maximum number of characters to read, including the null terminator.
  3. Third Argument: The stream from which to read the data (like a file pointer returned by fopen).

Return Value:

This is a good time to mention that you should never use the gets function. While gets is similar to fgets, it does not take an argument specifying the size of the array. Therefore, it continues reading data until it reaches a newline, even if it writes past the array's bounds, leading to buffer overflow vulnerabilities. This lack of boundary checking poses a significant security risk, making gets unsafe.


파일 읽기

fgets 함수는 한 번에 한 줄(최대 길이를 지정할 수 있음)을 읽을 때 유용합니다. 다음과 같은 프로토타입을 가지고 있습니다:

char * fgets(char * str, int size, FILE * stream);

이 함수는 세 가지 인수를 받습니다:

  1. 첫 번째 인수: 파일에서 읽은 문자를 저장할 배열(str)에 대한 포인터입니다. 예를 들어, fgets는 데이터를 str[0], str[1], str[2] 등에 기록합니다.
  2. 두 번째 인수: 배열 str의 크기입니다. 이 인수는 null 종결자를 포함한 최대 읽기 문자를 지정합니다.
  3. 세 번째 인수: 데이터를 읽을 스트림입니다(fopen으로 반환된 파일 포인터 등).

반환 값: