컴퓨터 시스템/CSAPP

C 입력 버퍼와 출력 버퍼 stdin, stdout

Campkim 2021. 9. 24. 11:25

표준 입출력과 버퍼 개념에 대해 제대로 몰라서 어제밤에 코드 실행 결과를 이해하는데 조금 삽질을 했다.

 

코드의 특정 라인에서 printf("00")로 실행 했을 때와 printf("00\n")이 화면에 표시되는 출력타이밍이 달랐다.

 

기존에 이해하고 있던 내용은

printf 함수를 단순히 화면에 문자를 출력해주는 함수로이고,

'\n'는 단지 줄을 바꿔주는 역할만 한다고 생각을 하고 있었다.

 

하지만 실제로는 \n은 버퍼를 비워주는 역할을 한다. printf, scanf 에서 사용되는 버퍼는 \n를 만나거나 프로그램이 종료시에 비워진다.

 

 

 

읽은 자료.

 

https://shoark7.github.io/programming/knowledge/what-is-standard-stream

 

표준 스트림, 표준 입출력에 대해 알아보자

표준 입출력과 표준 스트림이 무엇인지 이해해보자!

shoark7.github.io

https://m.blog.naver.com/PostView.nhn?isHttpsRedirect=true&blogId=firia2000&logNo=10036209594&categoryNo=52&proxyReferer= 

 

C에서 입력버퍼(stdin)과 출력버퍼(stdout)

C에서 입력과 출력은 버퍼를 통해서 하게 된다. 버퍼를 이용하여 입출력을 하는 함수들은 다음과 같다 출...

blog.naver.com

https://real-dongsoo7.tistory.com/70

 

스트림과 버퍼에 대해 알아보자!

시작하기 전에 해당 블로그에 작성되는 글은 주인장의 지극히 주관적인 생각이 다수이며, 대부분의 지식은 구글링을 통해 얻고 있기 때문에 옳지않은 정보가 있습니다. 잘못된 부분이나 수정해

real-dongsoo7.tistory.com

https://blog.plorence.kr/463

 

C 표준입출력과 버퍼와 스트림

이때까지 썼던 printf함수, scanf함수 모두 표준 입출력 함수입니다. 버퍼 이런 표준 입출력 함수를 통해 데이터를 입출력 하는경우 해당 데이터들은 운영체제가 제공하는 '메모리 버퍼'를 중간에

blog.plorence.kr