Programming/C language

Chapter 03. 표준 입출력 도구 (내용 요약)

Moomyung 2017. 3. 6. 14:44



입출력


User가 kernel에 직접적으로 접근할 수 없기 때문에 Kernel에서 User로 파일을 내주어 쓰거나 읽도록 해주었는데, 

이 File에는 입, 출력 Buffer를 가지고 있고, 입출력 함수들은 이 Buffer에 있는 문자를 가져오거나, 이 Buffer에 문자를 쓰는 역할을 하는 것이다. 


Buffer란? 

Start    -->  A    -->  B    -->  End 

(복사)      (복사)      (복사)


어떤 정보를 시작 지점에서 끝 지점까지 전달할 때 중간중간에 거쳐가는 경우가 있는데, 이렇게 거쳐가는 Memory를 Buffer라고 한다. 



Buffered I/O :  getchar(), scanf(), gets()

NonBuffered I/O  :  _getch()



getchar() : buffer에 있는 문자를 하나씩 가져온다. 

scanf() : buffer에 있는 문자를 형식에 맞춰서 가져온다. 

gets() : buffer에 있는 문자를 한줄씩 가져온다. 

(이 함수들은 보안 결함으로 인해 _s가 붙은 함수를 사용하도록 한다. - scanf_s는 윈도우만 존재함..) 


※ File *fp = stdin 을 사용해서 stdin의 내용을 확인할 수 있다


_getch() : 키보드에서 발생하는 인터럽트를 파악해 문자를 가져온다. 


fflush() : out buffer를 비우는 함수 (windows에 한해 input buffer도 가능) 

대체 - scanf("%*c", buffer);


- 출처 : 독하게 시작하는 C 프로그래밍 (최호성, 루비 페이퍼)