# stdout

8개의 포스트
post-thumbnail

[Linux] stdin, stdout, stderr, Redirection, pipe, awk

표준 입력/출력/에러 (stdin, stdout, stderr) 이 3가지를 표준 I/O 스트림 이라고 하며 운영체제에서 기본적으로 제공하는 추상화된 입출력장치를 의미한다. 스트림(stream) : 바이트의 흐름 / 데이터의 이동 통로 📌stdin standard input (표준 입력) 프로그램에 대한 입력을 나타내는 stream 일반적으로 키보드에 해당 File Descriptor 0 📌stdout standard output (표준 출력) 출력을 위한 스트림으로 일반적으로 현재 shell을 실행한 console이나 terminal File Descriptor 1 📌stderr standard error (표준 오류) 디버깅 정보나 에러를 출력하는데 사용 File Descriptor 2 ※ stderr로 받는 문자열은 grep이 되지 않음 (stder

2023년 9월 20일
·
0개의 댓글
·
post-thumbnail

stdout <-> _IO_2_1_stdout_

그런데 찾아보면 stdout이라는 전역 변수 자체가 존재한다는 것을 알 수 있다. 일단 확실한 건 stdout이라는 녀석은 에 해당하고, 은 실제 을 가지고 있다. stdout은 이 을 가리키고 있다고 보면 된다. 메모리에 매핑된 위치? stdout의 경우 data section에 존재함. 은 libc 내부에 존재함. 실제로 stdout이 의 주소를 값으로 가진다. 하나 더 TMI인 부분은 vmmap을 보면 write가 가능한 영역에 stdout이 속한다는 것도 알고 있으면 좋다. ![](https://vel

2023년 5월 12일
·
0개의 댓글
·
post-thumbnail

C++ 표준입출력 STDOUT 비활성화

프로그램을 개발하다보면 printf, cout 등의 표준입출력을 이용해 메세지를 출력하거나 값을 확인하는 경우가 많다. 또 외부 라이브러리를 사용하는 경우에도 메세지가 출력되는 경우가 많은데, 출력 소스코드를 하나하나 찾아서 주석처리하거나, 라이브러리를 새로 빌드하는 것은 매우 번거롭다. 이런 경우 표준입출력을 비활성화 시키는 간단한 코드가 있다. 매우 잘 동작한다. 간혹 외부 라이브러리에서 libnamelogger 형식으로 메세지 로깅 기능이 직접 구현된 경우에는, 위 코드를 사용해도 로그 메세지가 출력되기 때문에, 이런 경우는 직접 수정해줘야 한다.

2022년 8월 30일
·
0개의 댓글
·

[Linux] crontab 과 stdout/stderr, 환장의 조합

표준출력와 crontab 의 조합 표준 출력이 있는 레거시 모듈이 있다면... 종종 레거시 시스템에 존재하는 stdout, stderr 이 포함된 모듈 crontab 에 등록되어버리면? crond 에서 실행 후 stdout, stderr 내용이 mail 로 발송된다. 메일 서버 설정했다면 메일 서버로, 설정하지 않았다면 maildrop 파일로 /var/spool/postfix/maildrop 등 발생하는 문제 mail 폭탄 mail 서버에 불필요한 메일이 가득 쌓이거나 (주기적으로 정리하지 않을 시) 누적되는 로그로 인한 디스크 용량 대량의 파일 생성으로 인한 불필요 & 과도한 inode 점거 -> 이로 인한 각종 side effect 로그 정리 이미 쌓였다면 정리부터. 전체 삭제 maildrop 등 골라서 삭제 메일 발송 막기 crond의

2022년 6월 8일
·
0개의 댓글
·
post-thumbnail

21.04.14 [HackerRank] Java Stdin, Stdout, If-Else

🌱 Java Stdin and Stdout I 배경지식 stdin(standard input) stdout(standard out)은 표준입력이라는 뜻이다. stdin에서 일반적으로 입력을 읽는 방법은 scanner 클래스를 사용하고 입력 스트림을 System.in으로 지정하는 방법이 있다. Scanner class의 특징 기본적인 데이터 타입들을 이 클래스의 메서드를 사용해 입력받을 수 있다. String(문자열)의 경우 next() or nextLine() int(정수)의 경우 nextInt()를 사용한다. Scanner 사용 시 util 패키지를 통해 클래스 호출을 해주어야 한다. 3.공백 또는 개행을 기준으로 읽는다. 입력 메서드는 대부분 공백과 개행(' ', '\t', '\r', '\n' 등등..) 기준으로 읽는다. 이로써 사용자 편의에 따라 입력을 쉽게 할 수 있다. ✏️ Java Stdin and Stdout I 풀이

2022년 4월 14일
·
0개의 댓글
·

Docker Run

Docker Run run - tag 여기서 보면 레디스의 버전이 6.2.3인 것을 확인할 수 있습니다. 만일 어떠한 이유로 다른 버전의 레디스를 깔아야되는 경우에는 어떻게 할까요? 4.0 버저능ㄹ 설치해야 된다고 가정해봅시다. 그런 경우에는 docker run redis:4.0이렇게 입력하면 됩니다. 즉, 이미지 다음에 :을 입력하고 원하는 버전을 입력해줍니다. 이것을 tag하고 부릅니다. 만약 docker run redis 같이 특정한 태그를 붙이지 않으면 자동으로 디폴트 태그인 latest를 붙여줍니다. latest는 태그 이름에서 알 수 있듯이 해당 소프트웨어의 가장 최신 버전을 의미합니다. run - stdin 이름을 입력하면 단순히 웰컴 메세지를 보내주는 프로그램이 있다고 해봅시다. 해당 프로그램을 도커화해서 실행시키면 입력을 받지 않고 실행되고 standard out에 출력하는 것을 확인할 수 있습니다

2021년 5월 25일
·
0개의 댓글
·
post-thumbnail

print() 함수의 새로운 면모(sep, end, file, flush)

이 글은 "오래 알고 지낸 print... 너 이렇게 💰이 많은... 아니 매개변수가 많은 아이였어...?"라는 깨달음을 바탕으로 작성된 글입니다. 사건의 발단 2차원 배열을 출력하기 위해 print의 end를 쓰다가 문득 다른 키워드 인자들에는 어떤 것들이 있는지 궁금해졌다. 공식 문서에 숨어있던 (나만 몰랐던 네 모습) 공식 문서(📂)를 찾아보니 print()에는 생각보다 많은 기능이 있었다. >print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False) 오래 알고 지낸 print... 너 이렇게 💰이 많은... 아니 매개변수가 많은 아이였어...? 라는 감격도 잠시, 공식 문서의 설명을 읽어도 잘 이해가 안 되어 python console에서 help

2020년 11월 27일
·
3개의 댓글
·

Docker STDOUT/STDERR 확인하기 - docker logs 사용 방법

바이너리를 직접 실행하지 않고 docker로 실행 할 때, STDOUT을 어떻게 확인할지 고민일 때가 있다. 이때 docker logs 명령을 이용하면 쉽게 확인이 가능하다. 기본 사용법 계속 streaming해서 보기 (following) 계속 streaming해서 보려면 --follow or -f 옵션을 사용하면 된다. 끝의 원하는 줄 수 만큼 출력 끝에서 원하는 줄 수 만큼 출력할 경우 --tail 옵션을 사용한다. Timestamp와 함께 출력 Timestamp와 함께 보려면 --timestamps or -t 옵션을 사용한다. 특정시간 이후의 정보를 출력 특정 시간 --since 옵션을 사용한다. 참고 자료

2020년 7월 29일
·
0개의 댓글
·