Search

fgets()

[- Disclaimer -] 아래 내용은 정보보안 공부 목적으로 작성된 것이나, 이를 토대로 허가되지 않은 대상에 실습을 진행할 경우 해킹 시도로 간주하여 법적 처벌을 받을 수 있음을 알려 드립니다.
fgets()
✦ <stdio.h>
✦ Const가 안 붙는 이유는 Stream에 온 데이터의 변경 가능성 때문
✦ 파일 Stream의 첫 주소부터 EOF에 도달하기 전까지의 문자열 Read
✧ 문자열 다 읽어 오면 NULL String 추가, 개행 문자 미추가
✦ Parameter1에 전달되는 Argument1
✧ Destination 문자열
✦ Parameter2에 전달되는 Argument2
✧ Read할 문자 수
✦ Parameter3에 전달되는 Argument3
✧ 파일 Stream 포인터 자체 주소
✦ Return 값
✧ 성공
→ Read할 문자열
✧ 실패
→ EOF // Error 시 NULL 포인터에 담긴 주소가 가리키는 NULL 값
char *fgets(char *str, int numChars, FILE *stream);
Plain Text
복사
test.txt에 "ABC"가 적혀 있을 경우 - Ex)
#include <stdio.h> int main(void) { FILE *fp = fopen("test.txt", "r"); if (fp != NULL) { char arr[64] = {'\0'}; char *ret = fgets(arr, 64, fp); if (ret != NULL) printf("%s", arr); fclose(fp); fp = NULL; } return 0; }
Plain Text
복사
ABC -------------------------------- Process exited after 0.07985 seconds with return value 0 계속하려면 아무 키나 누르십시오 . . .
Plain Text
복사
#include <stdio.h> int main(void) { FILE *fp = fopen("test.txt", "r"); if (fp != NULL) { char arr[3] = {'\0'}; char *ret = fgets(arr, 3, fp); // NULL 문자가 추가되니까 AB만 읽어옴 if (ret != NULL) printf("%s", arr); fclose(fp); fp = NULL; } return 0; }
Plain Text
복사
AB -------------------------------- Process exited after 0.05685 seconds with return value 0 계속하려면 아무 키나 누르십시오 . . .
Plain Text
복사