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가 자동으로 추가된다고 한다.