반응형
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 :
반응형
'C언어 header > stdio.h' 카테고리의 다른 글
fputs(3) - stream으로 1라인 쓰기 (0) | 2019.09.24 |
---|---|
fputc(3) - stream으로 1바이트 쓰기 (0) | 2019.09.24 |
ungetc(3) - stream으로 1 byte 되돌리기 (0) | 2019.09.24 |
fgetc(3) - stream으로부터 1byte 읽기 (0) | 2019.09.24 |
fwrite(3) - binary stream 쓰기 (0) | 2019.09.24 |