POSIX는 이식 가능 운영 체제 인터페이스(portable operating system interface)의 약자로, 서로 다른 UNIX OS의 공통 API를 정리하여 이식성이 높은 유닉스 응용 프로그램을 개발하기 위한 목적으로 IEEE가 책정한 애플리케이션 인터페이스 규격입니다.
따라서 POSIX 표준을 준수하는 모든 소프트웨어는 POSIX 표준을 준수하는 다른 운영 체제와 호환되어야 합니다.
stdin은 표준 입력 스트림입니다. 이것은 텍스트를 입력으로 받아들입니다.
표준 입력은 프로그램으로 들어가는 데이터(보통은 문자열) 스트림입니다. 프로그램은 read
명령을 이용하여 데이터 전송을 요청합니다. 모든 프로그램이 입력을 요구하는 것은 아니고 dir
이나 ls
프로그램(디렉터리에 들어 있는 파일 이름을 보여 주는 명령)은 실행시 옵션과 같은 명령줄 매개변수를 받을 수는 있으나, 동작 중에 데이터 스트림의 입력 없이 명령을 수행합니다.
stdout은 출력 데이터를 쓰기 위한 표준 출력 스트림입니다.
표준 출력은 프로그램이 출력 데이터를 기록하는 스트림입니다. 프로그램은 write
명령을 이용하여 데이터 전송을 요청합니다. 모든 프로그램이 출력을 요구하는 것은 아니고 파일 이름 바꾸기 명령(일반적으로 mv
, move
, ren
)은 명령 수행이 성공적이어도 아무 메시지도 나타내지 않습니다.
표준 오류는 프로그램이 오류 메시지나 진단을 출력하기 위해 일반적으로 쓰이는 또다른 출력 스트림입니다.
유닉스 계열 운영 체제에서(어느 정도까지는 마이크로소프트 윈도우에서) 제공되는 병행성 메커니즘의 하나입니다.
어떤 프로그램의 출력 결과를 다른 프로그램의 입력 값으로 사용합니다.
echo "foo bar baz" | wc -w
echo 명령어를 수행하면 3개의 단어를 결과로 받을 것입니다. | 문자는 echo로 인해 stdout에서 나온 결과를 wc 명령어의 stdin에 넣겠다는 것과 동일한 의미입니다.
파이프에는 일정한 크기의 공간이 할당되어 있습니다. 어떤 프로세스가 파이프에 데이터를 기록하려고 할 때 충분한 공간이 남아있다면 기록이 즉시 수행되겠지만, 공간이 부족하다면 그 프로세스는 차단됩니다. 이것은 운영체제가 상호배제를 수행한 결과입니다. 즉, 한 순간에 1개의 프로세스만이 파이프에 접근할 수 있습니다.
참고
표준 스트림