BROADCAST-STREAM — 시스템 클래스(브로드캐스트 스트림)
BROADCAST-STREAM — 시스템 클래스(브로드캐스트 스트림)
여러 출력 스트림에 같은 내용을 동시에 보내고 싶을 때가 있어요. 로그를 화면과 파일에 함께 쓰는 식이죠. 그럴 때 쓰는 것이 broadcast-stream이에요. 이 스트림에 보낸 출력이 연결된 각 출력 스트림에 그대로 전달돼요. 이 문서는 시스템 클래스(system class) 문서예요.
본문
클래스 우선순위 리스트 (Class Precedence List)
broadcast-stream
stream
t
설명 (Description)
브로드캐스트 스트림은 0개 이상의 출력 스트림의 집합과 연관된 출력 스트림이에요. 브로드캐스트 스트림에 보낸 출력은 연관된 각 출력 스트림으로 출력으로서 전달돼요. (브로드캐스트 스트림에 component stream이 없으면, 그 스트림에 대한 모든 출력은 버려져요.)
브로드캐스트 스트림에 수행할 수 있는 연산의 집합은 연관된 출력 스트림들에 대한 연산 집합의 교집합이에요.
일부 출력 연산(예: fresh-line)은 연산 시점의 스트림 상태에 기반한 값을 반환해요. 그 값이 각 component stream마다 달라질 수 있으므로, 반환값을 구체적으로 설명하는 게 필요해요.
stream-element-type은 마지막 component stream의 값, 또는 component stream이 없으면t를 반환해요.fresh-line은 마지막 component stream의 값, 또는 component stream이 없으면nil을 반환해요.file-length,file-position,file-string-length,stream-external-format함수는 마지막 component stream의 값을 반환해요. component stream이 없으면file-length와file-position은0,file-string-length는1,stream-external-format은:default를 반환해요.streamp와output-stream-p함수는 브로드캐스트 스트림에 대해 항상 참(true)을 반환해요.open-stream-p함수는 브로드캐스트 스트림 자체가 열려 있는지 검사하지, component stream들이 열려 있는지는 검사하지 않아요.input-stream-p와interactive-stream-p함수는 구현 정의된 일반화된 불리언 값(generalized boolean)을 반환해요.- 입력 연산
clear-input,listen,peek-char,read-byte,read-char-no-hang,read-char,read-line,unread-char를 브로드캐스트 스트림에 수행하면 결과가 정의되어 있지 않아요. 다만 구현이 그런 동작을 구현 의존 확장(implementation-dependent extension)으로 정의하는 것은 허용돼요.
위나 이 문서의 다른 곳에서 반환값이 명시적으로 주어지지 않은 출력 연산들에 대해서는, 그 연산이 반환하는 값은 마지막 component stream에 대해 수행한 결과예요. 앞의 모든 스트림에 수행한 값은 버려져요. component stream이 없으면 값은 구현 의존(implementation-dependent)이에요.
더 알아보기 (See Also)
broadcast-stream-streamsmake-broadcast-stream