C언어 문법 스트림과 데이터의 이동
■ 데이터의 입출력
프로그램 중심으로 데이터가
프로그램 안으로 들어오면 입력이고,
프로그램 밖으로 나가면 출력입니다.
대표적인 입력 장치로는 키보드가 있으며, 파일도 입력의 대상이 될 수 있습니다.
대표적인 출력 장치로는 모니터가 있으며, 파일도 출력의 대상이 될 수 있습니다.
■ 스트림(stream)이란?
이제까지 C언어로 코드를 작성하고 결과값을 어떻게 출력했나요?
printf 함수를 호출하였습니다.
프로그램과 키보드는 서로 떨어져 있는 개체인데 printf 함수 호출만으로 어떻게 문자열이 출력될 수 있을까요?
프로그램과 키보드를 연결해주는 다리가 있기 때문입니다. 그 역할을 하는 매개체를 '스트림'이라고 합니다.
스트림이란 운영체제에서 제공하는 가상의 다리입니다. 소프트웨어로 구현되어 있습니다.
스트림은 연결 대상에 따라 직접 설정해야할지, 말지가 결정됩니다. 파일과 연결하려면 수동으로 설정해야합니다.
하지만 콘솔(키보드, 모니터 등)과의 연결을 위해서는 스트림이 자동으로 생성되었다가 프로그램 종료 시에 자동으로 소멸됩니다.
이렇게 콘솔 입출력을 위한 '입력 스트림'과 '출력 스트림'은 기본적으로 제공되는 '표준 스트림(standard stream)'입니다. 또한 이 표준 스트림에는 '에러 스트림'도 포함됩니다. 각각 다음과 같은 이름이 붙어있습니다. 이름이 어떻게 사용되는지는 다음 글에서 계속 다루겠습니다. .
stdin | 표준 입력 스트림 | 키보드 대상으로 입력 |
stdout | 표준 출력 스트림 | 모니터 대상으로 출력 |
stderr | 표준 에러 스트림 | 모니터 대상으로 출력 |
스트림(stream)은 한 방향으로 흐르는 데이터의 흐름을 뜻합니다. 즉 단방향으로 데이터의 전송이 이루어진다는 뜻입니다. 실제로 입출력 스트림도 입력 스트림과 출력 스트림이 구분되어서 한 방향으로 데이터의 흐름을 유지하고 있습니다.
-----------------------------------
-----------------------------------
'컴퓨터 공학 > C, C++' 카테고리의 다른 글
[ C ] 문자열 함수 이해하기4_문자열 단위 입출력 함수_puts, fputs, gets, fgets (398) | 2020.07.21 |
---|---|
[ C ] 문자열 함수 이해하기3_문자 단위 입출력 함수_putchar, fputc, getchar, fgetc / EOF 이란 (418) | 2020.07.21 |
[ C ] 문자열 함수 이해하기1_C 스타일 문자열이란? / 문자열 길이 구하기 (393) | 2020.07.21 |
C언어 문법 총정리_프로그래밍 독학이나 컴퓨터공학과를 준비하는 분을 위한 (426) | 2020.07.21 |
[ C ] 포인터 이해하기11_포인터 개념 정리 / 용도 / 복습 또 복습하기 (404) | 2020.07.21 |
댓글