표준 입출력
표준 입출력의 정의
- 프로그램이 외부(사용자나 다른 프로그램)와 데이터를 주고받는 기본적인 입력 장치 및 출력 장치
- 운영체제가 모든 프로세스가 사용할 수 있도록 미리 정의해 둔 기본적인 데이터 통신 채널
| 구분 | 영문 | 약어 | 설명 |
|---|---|---|---|
| 표준 입력 | standard input | stdin | - 프로그램으로 데이터가 들어오는 통로 - 보통 키보드가 기본 입력장치 |
| 표준 출력 | standard output | stdout | - 프로그램에서 데이터가 나가는 통로 - 보통 모니터(콘솔) 가 기본 출력장치 |
| 표준 에러 | standard error | stderr | - 프로그램이 오류 메시지를 출력하는 통로 - 표준 출력과 분리(별도의 스트림) 되어있음 - 따라서 오류메시지만 따로 처리/저장할 수 있음 |
별도 설정이 없는 경우 표준 입력은 키보드, 표준 출력은 콘솔이 된다.
입출력의 종류
- 입력과 출력에는 여러 가지 종류가 있다.
- 어떤 것을 표준 출력, 표준 입력으로 할지 정할 수 있다.
-
표준 입출력을 바꾸는 방법은 (1) 운영체제 설정 변경 (2) 파이프( )를 통한 리다이렉션 이 있다.
| 구분 | 예시 |
|---|---|
| 입력 | 키보드, 마우스, 터치스크린, 스캐너, 마이크, 웹캠, 네트워크 인터페이스 카드 .. |
| 출력 | 모니터, 프린터, 스피커, 플로터, 네트워크 인터페이스 카드 .. |
C 언어의 표준 입출력 함수
함수의 정의
- 특정 작업(기능)을 수행하도록 설계된 코드 블럭
- 처리할 데이터를 입력으로 받고, 이를 정해진 코드에 따라 처리한 뒤, 처리결과를 출력한다.
1
2
3
4
5
6
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[]) { // argc, argv : 입력(input)
printf("Hello, %s!\n", argv[1]); // 함수의 처리
return EXIT_SUCCESS; // EXIT_SUCCESS : 출력(output)
}
C 언어의 표준 입출력 함수의 종류
| 구분 | 함수 | 설명 |
|---|---|---|
| 입력 | scanf() | 키보드를 통해 1개 이상의 자료를 입력받는다. |
| getchar() | 키보드를 통해 1개의 문자를 입력받는다. | |
| gets() | 키보드를 통해 문자열을 입력받는다. | |
| 출력 | printf() | 화면에 여러 종류의 자료를 출력한다. |
| putchar() | 화면에 1개의 문자를 출력한다. | |
| puts() | 화면에 문자열을 출력한다. |
- 이들은 표준 입출력 라이브러리
<stdio.h>에 정의되어 있다. - 입력과 출력 함수가 여러 종류인 이유는 다음과 같다.
- (1) 데이터 처리 단위에 대한 요구사항이 다른 다양한 경우에 대응하기 위해
- (2) 안전성 확보 : scanf 경우 크기가 한정되지 않아 버퍼 오버플로 문제 야기 가능
Reference
C 프로그래밍 (김형근, 곽덕훈, 정재화 공저)
C 프로그래밍 강의 (방송통신대 - 이병래)
Comments