From 2b8c6c5ed28233a803e64f0b7ecf71218f1b4074 Mon Sep 17 00:00:00 2001 From: leejangwon <wkddnjs3268@ajou.ac.kr> Date: Wed, 12 Aug 2020 16:13:05 +0900 Subject: [PATCH] printf, stdio.h, man, redirection --- 0803/README.md | 58 ++++++++++++++++++++++++++++++++++++++++++++++++ 0803/input_data | 1 + 0803/output_data | 2 ++ 3 files changed, 61 insertions(+) create mode 100644 0803/README.md create mode 100644 0803/input_data create mode 100644 0803/output_data diff --git a/0803/README.md b/0803/README.md new file mode 100644 index 0000000..b8b1859 --- /dev/null +++ b/0803/README.md @@ -0,0 +1,58 @@ +# printf + +`int printf(const char *format, ...)` +printf 함수는 매개변수를 format에 따라서 출력해주는 함수다. + +`int fprintf(FILE *stream, const char *format, ...)` +printf 함수는 실행될 때 내부에서 fprintf 함수로 바뀌어서 실행된다. + +``` +printf("Hello World"); +fprintf(stdout, "Hello World"); +``` +printf 함수가 fprintf 함수로 바뀔 때 stream에 stdout이 들어가게 되고 두 함수는 완전히 같은 역할을 한다. + +# stdio.h + +standard input output library의 줄임말로 표준 입출력과 관련된 함수, 매크로 등이 포함된 헤더 파일이다. + +### stream + +* stdin +표준 입력 스트림(키보드)를 참조하는 FILE에 대한 포인터 + +* stdout +표준 출력 스트림(스크린)를 참조하는 FILE에 대한 포인터 + +* stderr +표준 오류 스트림(스크린)를 참조하는 FILE에 대한 포인터 + +# man + +`man <command | function | header file | ...>` +manual의 줄임말로 명령어나 함수, 헤더 파일 등에 대한 사용법을 알려주는 명령어다. + +# redirection + +redirection이란 스트림의 흐름을 바꿔주는 것이다. redirection을 이용해 프로세스의 스트림을 콘솔이 아닌 파일을 사용할 수 있다. + +* \> +`file > output` +표준 출력을 파일로 redirection한다. 파일이 없으면 새로 만들고, 파일이 있으면 덮어쓴다. +``` +$ ./test > output_data +``` + +* \>> +`file >> output` +표준 출력을 파일로 redirection한다. 파일이 없으면 새로 만들고, 파일이 있으면 파일의 끝에 덧붙인다. +``` +$ ./test >> output_data +``` + +* < +`file < input` + 파일로부터 표준 입력을 받도록 redirection한다. +``` +$ ./test < intput_data +``` \ No newline at end of file diff --git a/0803/input_data b/0803/input_data new file mode 100644 index 0000000..25f412a --- /dev/null +++ b/0803/input_data @@ -0,0 +1 @@ +-200 diff --git a/0803/output_data b/0803/output_data new file mode 100644 index 0000000..3bb9c68 --- /dev/null +++ b/0803/output_data @@ -0,0 +1,2 @@ +Hello, World -200 +Error: It is negative -- GitLab