fgets로 buffer크기만큼 입력을 받을 수 있을까?

jinwook han·2023년 3월 26일
0

fgets로 buffer크기만큼 입력을 받을 수 있을까?
-> 아니오. 최대 buffer크기 - 1 만큼 입력받을 수 있다. 마지막 문자열에는 \0이 들어간다.

코드

int main(int argc, char *argv[]) {

        char buf[2];
        fgets(buf, 2, stdin);

        fputs(buf, stdout);
        printf("\n");
}

결과


버퍼 크기는 2 이고, he를 입력했지만 h만 반영됐다.

더 알아보기

https://man7.org/linux/man-pages/man3/fgets.3p.html

A null byte shall be written immediately after the last byte read into the array.

fgets로 읽은 뒤 null byte가 자동으로 추가된다고 한다.

0개의 댓글