C언어 header/stdio.h
fgets(3) - stream으로부터 1라인 읽기
자연&사람
2019. 9. 24. 23:02
반응형
fgets(3)
#include <stdio.h>
char *fgets(char *s, int size, FILE *stream);
stream으로부터 1라인을 읽습니다. EOF나 개행문자(\n)를 만나면 읽기를 끝내고 null(0x00)을 붙입니다. 읽은 라인에 개행문자가 있어 끝났으면, 개행문자는 s에 포함됩니다. 1라인이 size - 1보다 클 경우에는 size - 1만큼만 읽고 끝에 null값(0x00)을 붙여서 끝냅니다.
파라미터
s
- 읽은 데이터를 저장할 buffer
size
- 파일에서 읽은 데이터를 저장하기 위해 할당된 buffer의 크기
stream
- fopen(3), fdopen(3)으로 읽기용으로 return 받은 FILE *
RETURN
NULL 아님
- 정상적으로 1라인의 데이터를 읽었습니다.
NULL
- 읽을 데이터가 없거나 데이터 읽기에 실패하였습니다.
활용 예제
Sample. cat 명령어 처럼 파일의 내용보기
#include <stdio.h>
#include <string.h>
#include <errno.h>
int main(int argc, char *argv[])
{
FILE *fp;
char line[4096];
if(argc == 1) {
return 0;
}
if((fp = fopen(argv[1], "r")) == NULL) {
fprintf(stderr, "%s file open error: %s\n", argv[1], strerror(errno));
return 1;
}
while((fgets(line, 4096, fp) != NULL) {
printf("%s", line);
}
fclose(fp);
return 0;
}
see also :
반응형