stdio: standard Input/Output (표준입출력)
fd, 파일 서술자
예약된 파일 서술자
프로세스 사이에 통신하기 위해 사용됨
IPC(Inter-Process Communication)의 일종
Shell에서도 많이 사용하는 기능
pipe의 종류 2가지
임시로 생성되었다가 소멸되는 파이프 (nameless pipe, unamed pipe)
프로세스들의 직렬 연결하는 기능
셸 명령행에서 Vertical bar (|)로 사용
셸의 stdio에서 주로 배우는 개념
일반적으로 ‘파이프’라고 부르면 익명 파이프임
사용 예
$ find ~ | wc -l (홈 디렉토리의 파일 개수를 새는 명령어)
$ find ~ > tmp.txt; wc -l < tmp.txt; rm tmp.txt (같은 작업이 파이프를 사용하지 않으면 길어짐)
process1: find 명령의 출력 (stdout, 1)
process2: wc 명령의 입력 (stdin, 0)
프로세스의 입출력 채널이 서로 연결됨
명명된 파이프 (FIFO Pipe)
채널의 방향을 다른곳으로 지정 (방향재지정)
A > B : A의 stdout을 파일 B로 연결
A < B : B stdout을 파일 A로 연결
A >> B : append mode로 기존 데이터를 지우지 않고 추가됨
사용 예
sort < names.txt
ls > filelist1.txt ( > = 1>)
strace ls 2> strace.txt (stderror, 2 (error 출력)을 txt에 저장)
stdout과 파일을 자유롭게 연결해주는 기본 필터