POSIX 기초

최정은·2022년 11월 2일
1

Backend Roadmap

목록 보기
21/23
post-thumbnail

POSIX

POSIX(Portable Operating System Interface)는 이식가능 운영체제 인터페이스의 약자다. 서로 다른 유닉스 운영체제의 공통 API를 정리하여 이식성이 높은 유닉스 응용프로그램을 개발하기 위한 목적으로 IEEE가 책정한 애플리케이션 인터페이스 규격이다.

쉽게 말해, 어떤 OS에서 개발한 프로그램을 다른 OS에서도 쉽고 돌아가도록 하는 표준이다.

표준 스트림

표준 스트림(Standard Stream)은 특정한 프로그래밍 언어 인터페이스뿐만 아니라 유닉스 및 유닉스 계열 운영체제에서 컴퓨터 프로그램과 그 환경(키보드나 모니터와 같은 장치들) 사이에 미리 연결된 입출력 통로를 가리킨다.

일반적으로 유닉스에서 동작하는 프로그램은 실행 시, 세 개의 스트림이 자동으로 열린다. 이를 표준 스트림이라고 부른다. 보통 입출력은 물리적으로 연결된 키보드나 모니터를 통해 일어나는데, 표준 스트림은 이것을 추상화한 것이다.

표준 스트림에는 표준 입력, 표준 출력, 표준 오류가 있다.

표준 입력 (stdin)

표준 입력(stdin) : 프로그램으로 들어가는 데이터 스트림이다.

  • 표준 입력을 위한 파일 서술자는 0이다.
  • STDIN_FILENO in POSIX <unistd.h>

표준 출력 (stdout)

표준 출력(stdout) : 프로그램이 출력 데이터를 기록하는 스트림이다.

  • 표준 출력을 위한 파일 서술자는 1이다.
  • STDOUT_FILENO in POSIX <unistd.h>

표준 오류 (stderr)

표준 오류(stderr) : 프로그램이 오류 메시지나 진단을 출력하기 위해 일반적으로 쓰이는 또다른 출력 스트림이다.

  • 표준 오류를 위한 파일 서술자는 2이다.
  • STDERR_FILENO in POSIX <unistd.h>

표준 스트림의 사용

터미널에서 echo foo 명령어를 입력하면

1) stdin으로 입력을 받아 echo에 넘겨준다.
2) echo에서 stderr에 데이터를 저장하고 stdout에서 데이터를 출력한다.

pipes (|)

어떤 프로그램의 출력 결과를 다음 단계의 입력값으로 이어지는 형태로 연결된 구조를 말한다. echo "foo bar baz" | wc -w 명령어를 입력하면

echo의 출력값을 다음 명령어의 입력값으로 넘겨주는 것을 볼 수 있다.

Reference

표준 스트림

profile
https://dolmeng22.tistory.com 로 이전했습니다~

0개의 댓글