Studying/Roadmap

POSIX 기초

aoaa 2022. 4. 1. 01:13

1. POSIX?

 POSIX(Portable Operating System Interface)는 이식 가능 운영체제 인터페이스의 약자로 서로 다른 UNIX OS의 공통 API를 정리하여 이식성이 높은 UNIX 응용 프로그램을 개발하기 위한 목적으로 IEEE(전기전자 기술자협회)가 책정한 애플리케이션 인터페이스 규격입니다. 쉽게 말하면 한 OS에서 개발한 프로그램을 다른 OS에서도 쉽게 돌아가도록 하는 표준이라고 합니다. (소스코드의 호환)

 

2. 표준스트림

 표준 스트림(standard streams)은 특정 프로그래밍 언어 인터페이스뿐만 아니라 UNIX 및 UNIX계열 OS에서 컴퓨터 프로그램과 그 환경 사이 미리 연결된 입출력통로를 가리킵니다. 표준 스트림으로 인해 프로그램에서 입출력을 사용해야할 때, 입출력 장치를 연결하기 위한 그 어떤 추가작업도 필요하지 않게 되었습니다.

 표준 스트림에는 표준입력(stdin), 표준 출력 (stdout), 표준 오류 (stderr)가 있으며 이들은 POSIX에 들어있습니다.

stdin: 표준 입력은 프로그램으로 들어가는 데이터(보통은 문자열) 스트림입니다.

  • POSIX <unistd.h> STDIN_FILENO

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

  • <unistd.h> STDOUT_FILENO

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

  • <unistd.h> STDERR_FILENO

2.1 표준 스트림의 사용

터미널에서 이러한 명령어를 사용했다고 가정합시다.

echo foo

echo는 다음 나오는 문자열을 터미널에 출력하는 명령어이다. 그렇다면 아래 그림과 같은 동작이 일어난다.

stdin으로 입력을 받아 echo에 넘겨준 뒤, echo에서 stderr에 데이터를 저장하고 stdout에서 데이터를 출력합니다.

2.2 파이프

어떤 프로그램의 출력 결과를 다른 프로그램의 입력 값으로 쓰는게 파이프입니다.

터미널에 아래 명령어를 쓰면

echo "foo bar baz" | wc -w

 이렇게 동작합니다.. wc는 문자열의 문자수를 세는 명령어입니다.

|가 파이프를 뜻하는데 echo의 출력값을 wc에 넘겨주는 역할을 한다.

 

'Studying > Roadmap' 카테고리의 다른 글

네트워크 기초 개념  (0) 2022.04.01
입출력 관리  (0) 2022.03.30
프로세스 간 통신  (0) 2022.03.21
메모리 관리  (0) 2022.03.17
스레드와 동시성  (0) 2022.03.14