stdin, stdout, stderr
| Types and objects | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
헤더 파일에 정의됨
<stdio.h>
|
||
|
#define stdin /* implementation-defined */
|
(1) | |
|
#define stdout /* implementation-defined */
|
(2) | |
|
#define stderr /* implementation-defined */
|
(3) | |
세 개의 텍스트 스트림이 미리 정의되어 있습니다. 이러한 스트림들은 프로그램 시작 시 암묵적으로 열리고 방향성이 설정되지 않은 상태입니다.
인터랙티브 장치의 구성 요소는 구현에 따라 정의됩니다.
이 매크로들은 FILE * 타입의 표현식으로 확장됩니다.
목차 |
참고 사항
POSIX에서 의무화되지는 않았지만, UNIX 관례에 따르면 터미널과 연결된
stdin
과
stdout
은 라인 버퍼링되며,
stderr
는 버퍼링되지 않습니다.
이 매크로들은 수정 가능한 lvalue로 확장될 수 있습니다. 만약 이러한 FILE * lvalue 중 어느 하나라도 수정되면, 해당 스트림에 대한 후속 작업은 명시되지 않거나 정의되지 않은 동작을 초래합니다.
예제
이 예제는 printf 와 동등한 함수를 보여줍니다.
#include <stdarg.h> #include <stdio.h> int my_printf(const char* restrict fmt, ...) { va_list vl; va_start(vl, fmt); int ret = vfprintf(stdout, fmt, vl); va_end(vl); return ret; } int main(void) { my_printf("Rounding:\t%f %.0f %.32f\n", 1.5, 1.5, 1.3); my_printf("Padding:\t%05.2f %.2f %5.2f\n", 1.5, 1.5, 1.5); my_printf("Scientific:\t%E %e\n", 1.5, 1.5); my_printf("Hexadecimal:\t%a %A\n", 1.5, 1.5); }
가능한 출력:
Rounding: 1.500000 2 1.30000000000000004440892098500626 Padding: 01.50 1.50 1.50 Scientific: 1.500000E+00 1.500000e+00 Hexadecimal: 0x1.8p+0 0X1.8P+0
참조문헌
- C23 표준 (ISO/IEC 9899:2024):
-
- 7.21.1 서론 (p: TBD)
-
- 7.21.2 스트림 (p: TBD)
-
- 7.21.2 파일 (p: TBD)
- C17 표준 (ISO/IEC 9899:2018):
-
- 7.21.1 서론 (p: 217-218)
-
- 7.21.2 스트림 (p: 217-219)
-
- 7.21.2 파일 (p: 219-221)
- C11 표준 (ISO/IEC 9899:2011):
-
- 7.21.1 서론 (p: 296-298)
-
- 7.21.2 스트림 (p: 298-299)
-
- 7.21.2 파일 (p: 300-302)
- C99 표준 (ISO/IEC 9899:1999):
-
- 7.19.1 서론 (p: 262-264)
-
- 7.19.2 스트림 (p: 264-265)
-
- 7.19.2 파일 (p: 266-268)
- C89/C90 표준 (ISO/IEC 9899:1990):
-
- 7.9.1 서론
-
- 7.9.2 스트림
-
- 7.9.3 파일
참고 항목
|
C I/O 스트림을 제어하는 데 필요한 모든 정보를 담을 수 있는 객체 타입
(typedef) |
|
|
C++ documentation
for
stdin
,
stdout
,
stderr
|
|