지금 하는건 C언어를 사용해서 fgets 로 buf 크기를 제한한 환경에서 HTTP stream 을 처리하는 일을 해보고 있다.
왜하냐? 싶지만
우리가 편하게 쓰는 java, python 의 response, request 객체 안에서 어떤 일이 벌어지는지
캐시, 커널이 얼마나 감사한 존재인지를 알기 위해서 진행해보려고 한다.
buf를 재설정하기
memset(buf, 0, BUF_LEN);
이런식으로 아무때나 밀어도 되고
char buf[BUF_LEN] = {0,};
설정할때 밀어도 된다
for (int i = recv_len; i < BUF_LEN; i++) {
buf[i] = '\0';
}
아니면 원하는 조건대로 밀어도 된다.
fgets 상황에서 buffer flush 하기
while(getchar() != '\n');
이건 잘 이해가 안되는데 원본 링크 보면서 함께 이해해보자.
fflush(stdout);
stdout 이후에 무조건 나와야 하는 flush 이다.
이것도 정확한 작동원리는 나중에..
'개발 > C' 카테고리의 다른 글
[C] 문자열 포인터 (0) | 2022.12.29 |
---|---|
[C] 구조체 포인터 (0) | 2022.12.29 |
[C] 형식 지정자 (ex. %d, %s, %o...) (0) | 2022.12.26 |
[C] fgets와 strcmp 를 같이 쓸때 주의할점 (0) | 2022.12.23 |
[네트워크] [C 소켓통신 #2] buffer 크기 이상으로 받은 내용을 output (0) | 2022.12.23 |