검색결과 리스트
글
<스트림(stream)>
스트림이란 데이터를 입력하고 출력하기 위한 다리이다.
키보드 ---- 프로그램 ---- 모니터
이 세개는 전혀 다른 개체이다.
그렇다면 이 사이에 연결하려면 다리같은 것이 필요한데 그것이 스트림이다. ---- 이것이 스트림...
키보드로 데이터를 입력하면 표준 입력 스트림이 필요하고, 모니터로 데이터를 출력하려면 표준 출력 스트림이 필요한 것이다. 스트림은 운영체제에 의해서 만들어지는 것인데, 그냥 가상의 다리?라고 생각하자.
stdin : 표준 입력 스트림을 가리키는 다리이름.
stdout : 표준 출력 스트림을 가리키는 다리이름.
그렇다면 과연 이것들은 언제 생성되고 소멸될까?
그것은 바로 해당 프로그램 시작시 생성시키고, 종료시 소멸시킨다.
키보드 --(stdin)--> 프로그램 --(stdout)--> 모니터
이런 방식으로 우리는 여태껏 printf()와 scanf()를 사용하면서 스트림을 만들었다.
그렇다면 이 방법을 파일에다가 적용시키면 어떻게 될까?
파일 --(파일 입력 스트림)--> 프로그램 --(파일 출력 스트림)--> 파일
이렇게 나타낼 수 있을 것이다.
<버퍼(buffer)>
버퍼란 처리할 데이터를 임시로 저장하는 저장소이다. 자... 데이터 처리속도와 생성속도가 다르면 어떻게 될까? 무조건 낮은 쪽에 맞춰줘야한다. 이렇게 되면 너무 손해보는 장사가 아닐까...ㅠ
이런 단점을 없애기 위해 버퍼라는 것이 존재한다. 그 속도차이를 메워 주기 위한 임시 저장공간인 것이다.
키보드 --(stdin)--> 입력버퍼에 저장 ----> 프로그램
프로그램 ----> 출력버퍼에 저장 --(stdout)--> 모니터
<버퍼링(buffering)>
버퍼링이란 버퍼를 활용하는 방식 또는 버퍼에 저장하는 것을 말한다. 예를 들어 프린터와 같은 출력 장치로 데이터를 전송한다고 가정하자. 그렇다면 프린터로 그 데이터들이 가기전에 버퍼라는 공간에다가 데이터를 잠시 저장해준다. 직관적으로 봐도 모니터가 출력해나가는 속도와 컴퓨터가 데이터를 전송하는 속도는 어마어마한 차이가 있기 때문이다. 이 속도 차를 줄여주기 위해 있는 것이 버퍼이다.
'Programming > C' 카테고리의 다른 글
C언어 - 파일 입출력, fopen(), fclose() (0) | 2016.06.22 |
---|---|
C언어 - rand()함수 (0) | 2016.06.20 |
C언어 - 데이터 변환 함수(atof()함수, atoi()함수, atol()함수) (0) | 2016.06.19 |
C언어 - sscanf()함수, sprintf()함수 (0) | 2016.06.18 |
C언어 - strupr()함수, strlwr()함수 (0) | 2016.06.17 |
RECENT COMMENT