표준 입출력과 버퍼 개념에 대해 제대로 몰라서 어제밤에 코드 실행 결과를 이해하는데 조금 삽질을 했다.
코드의 특정 라인에서 printf("00")로 실행 했을 때와 printf("00\n")이 화면에 표시되는 출력타이밍이 달랐다.
기존에 이해하고 있던 내용은
printf 함수를 단순히 화면에 문자를 출력해주는 함수로이고,
'\n'는 단지 줄을 바꿔주는 역할만 한다고 생각을 하고 있었다.
하지만 실제로는 \n은 버퍼를 비워주는 역할을 한다. printf, scanf 에서 사용되는 버퍼는 \n를 만나거나 프로그램이 종료시에 비워진다.
읽은 자료.
https://shoark7.github.io/programming/knowledge/what-is-standard-stream
https://real-dongsoo7.tistory.com/70
'컴퓨터 시스템 > CSAPP' 카테고리의 다른 글
[ CSAPP / ch11 ] tiny web server, web proxy (0) | 2021.09.27 |
---|---|
웹 서버 기본 개념 정리(네트워크, TCP/IP , 소켓 프로그래밍) -작성중 (1) | 2021.09.20 |
링킹 (linking) 소스파일과 헤더파일 (0) | 2021.09.14 |
동적 메모리 할당(Dynamic memory allocation), malloc 함수 구현 (malloc lab) (0) | 2021.09.14 |
데이터 세그먼트 간단정리 (0) | 2021.09.06 |