스트림 술어

스트림 술어

스트림을 조작하는 내장 술어들을 설명해요.

출처: GNU Prolog Manual - Streams

본문

current_input/1

Templates

current_input(?stream)

Description current_input(Stream)은 현재 입력 스트림을 식별하는 스트림 항과 Stream을 통일해요.

Errors

  • Stream이 변수도 스트림도 아님 — domain_error(stream, Stream)

Portability: ISO 술어.

current_output/1

Templates

current_output(?stream)

Description current_output(Stream)은 현재 출력 스트림을 식별하는 스트림 항과 Stream을 통일해요.

Errors

  • Stream이 변수도 스트림도 아님 — domain_error(stream, Stream)

Portability: ISO 술어.

set_input/1

Templates

set_input(+stream_or_alias)

Description set_input(SorA)는 현재 입력 스트림이 스트림 항 또는 별칭 SorA와 연관된 스트림이 되도록 설정해요.

Errors

  • SorA가 변수 — instantiation_error
  • SorA가 변수도 스트림 항 또는 별칭도 아님 — domain_error(stream_or_alias, SorA)
  • SorA가 열린 스트림과 연관되지 않음 — existence_error(stream, SorA)
  • SorA가 출력 스트림 — permission_error(input, stream, SorA)

Portability: ISO 술어.

set_output/1

Templates

set_output(+stream_or_alias)

Description set_output(SorA)는 현재 출력 스트림이 스트림 항 또는 별칭 SorA와 연관된 스트림이 되도록 설정해요.

Errors

  • SorA가 변수 — instantiation_error
  • SorA가 변수도 스트림 항 또는 별칭도 아님 — domain_error(stream_or_alias, SorA)
  • SorA가 열린 스트림과 연관되지 않음 — existence_error(stream, SorA)
  • SorA가 입력 스트림 — permission_error(output, stream, SorA)

Portability: ISO 술어.

open/4, open/3

Templates

open(+source_sink, +io_mode, -stream, +stream_option_list)
open(+source_sink, +io_mode, -stream)

Description open(SourceSink, Mode, Stream, Options)은 Mode가 나타내는 대로 입력 또는 출력을 위해 소스/싱크 SourceSink를 열고 스트림 옵션 리스트 Options를 적용하며, 이 스트림과 연관된 스트림 항과 Stream을 통일해요. SourceSink의 구문에 대한 정보는 absolute_file_name/2(8.26.1절)를 참조해요.

입출력 모드: Mode는 스트림에서 수행될 수 있는 입출력 연산을 정의하는 원자예요. 가능한 모드는:

  • read — 소스/싱크는 소스이며 이미 존재해야 함. 입력은 소스의 시작에서 시작.
  • write — 소스/싱크는 싱크. 싱크가 이미 존재하면 비워지고, 그 외에는 빈 싱크가 생성됨. 출력은 싱크의 시작에서 시작.
  • append — 소스/싱크는 싱크. 싱크가 존재하지 않으면 생성됨. 출력은 싱크의 끝에서 시작.

스트림 옵션: Options는 스트림 옵션 리스트예요. 이 리스트가 모순된 옵션을 포함하면 가장 오른쪽 옵션이 적용돼요. 가능한 옵션:

  • type(text / binary) — 스트림이 텍스트 스트림인지 바이너리 스트림인지 지정. 기본값은 text.
  • reposition(true / false) — 스트림을 재배치할 수 있는지 여부를 지정. 기본값은 스트림을 재배치할 수 없을 때(예: 터미널)를 제외하면 true.
  • eof_action(error / eof_code / reset) — 스트림 위치가 past-end-of-stream인 스트림에서 입력하려는 시도의 효과를 지정:
    • error — 이 스트림에 더 이상 입력이 없다는 permission_error가 발생.
    • eof_code — 입력의 결과가 스트림 위치가 end-of-stream인 것처럼 됨.
    • reset — 스트림 위치가 past-end-of-stream이 아니도록 재설정되고 다른 시도가 이루어짐(터미널에서 입력할 때 유용). 기본값은 eof_code.
  • alias(Alias) — 원자 Alias가 스트림의 별칭이 되도록 지정. 기본적으로 스트림에 별칭이 붙지 않음. 같은 스트림에 여러 별칭이 정의될 수 있음.
  • mirror(Mirror) — 스트림 항 또는 별칭 Mirror와 연관된 스트림이 스트림의 미러가 되도록 지정. 기본적으로 스트림에 미러가 붙지 않음. 같은 스트림에 여러 미러가 정의될 수 있음.
  • buffering(none / line / block) — 이 스트림의 입출력 연산이 사용하는 버퍼링 유형을 지정:
    • none — 버퍼링 없음.
    • line — 출력 연산이 새 줄이 발생할 때까지 방출된 데이터를 버퍼.
    • block — 입출력 연산이 주어진 수(구현에 의존)의 문자/바이트가 처리될 때까지 데이터를 버퍼. 기본값은 터미널(TTY)의 경우 line, 그 외에는 block.

open(SourceSink, Mode, Stream)open(SourceSink, Mode, Stream, [])과 동일해요.

Errors

  • SourceSink가 변수 — instantiation_error
  • Mode가 변수 — instantiation_error
  • Options가 부분 리스트이거나 변수인 요소 E를 가진 리스트 — instantiation_error
  • Mode가 변수도 원자도 아님 — type_error(atom, Mode)
  • Options가 부분 리스트도 리스트도 아님 — type_error(list, Options)
  • Stream이 변수가 아님 — uninstantiation_error(Stream)
  • SourceSink가 변수도 소스/싱크도 아님 — domain_error(source_sink, SourceSink)
  • Mode가 원자이지만 입출력 모드가 아님 — domain_error(io_mode, Mode)
  • Options 리스트의 어떤 요소 E가 변수도 스트림 옵션도 아님 — domain_error(stream_option, E)
  • SourceSink가 지정하는 소스/싱크가 존재하지 않음 — existence_error(source_sink, SourceSink)
  • SourceSink가 지정하는 소스/싱크를 열 수 없음 — permission_error(open, source_sink, SourceSink)
  • Options 리스트의 어떤 요소 E가 alias(A)이고 A가 이미 열린 스트림과 연관됨 — permission_error(open, source_sink, alias(A))
  • Options 리스트의 어떤 요소 E가 mirror(M)이고 M이 열린 스트림과 연관되지 않음 — existence_error(stream, M)
  • Options 리스트의 어떤 요소 E가 mirror(M)이고 M이 입력 스트림 — permission_error(output, stream, M)
  • Options 리스트의 어떤 요소 E가 reposition(true)이고 이 스트림을 재배치할 수 없음 — permission_error(open, source_sink, reposition(true))

Portability: ISO 술어. mirrorbuffering 스트림 옵션은 GNU Prolog 확장.

close/2, close/1

Templates

close(+stream_or_alias, +close_option_list)
close(+stream_or_alias)

Description close(SorA, Options)는 스트림 항 또는 별칭 SorA와 연관된 스트림을 닫아요. SorA가 표준 입력 스트림 또는 표준 출력 스트림이면 close/2는 단순히 성공하고, 그 외에는 연관된 소스/싱크가 물리적으로 닫혀요. SorA가 현재 입력 스트림이면 현재 입력 스트림은 표준 입력 스트림 user_input이 돼요. SorA가 현재 출력 스트림이면 현재 출력 스트림은 표준 출력 스트림 user_output이 돼요.

닫기 옵션: Options는 닫기 옵션 리스트예요. 현재로서는 하나의 옵션만 사용할 수 있어요:

  • force(true / false) — false로, 소스/싱크를 닫으려 할 때 오류가 발생하면 스트림이 닫히지 않고 오류(system_error 또는 resource_error)가 발생(그러나 close/2는 성공). true로, 오류가 발생해도 무시되고 스트림이 닫힘. force/1 옵션의 목적은 오류 처리 루틴이 자원을 회수하기 위해 최선을 다하게 하는 것. 기본값은 false.

close(SorA)close(SorA, [])과 동일해요.

Errors

  • SorA가 변수 — instantiation_error
  • Options가 부분 리스트이거나 변수인 요소 E를 가진 리스트 — instantiation_error
  • Options가 부분 리스트도 리스트도 아님 — type_error(list, Options)
  • SorA가 변수도 스트림 항 또는 별칭도 아님 — domain_error(stream_or_alias, SorA)
  • Options 리스트의 어떤 요소 E가 변수도 닫기 옵션도 아님 — domain_error(close_option, E)
  • SorA가 열린 스트림과 연관되지 않음 — existence_error(stream, SorA)
  • SorA가 특수 닫기를 필요로 함(8.11절) — system_error(needs_special_close)

Portability: ISO 술어. system_error(needs_special_close)는 GNU Prolog 확장.

flush_output/1, flush_output/0

Templates

flush_output(+stream_or_alias)
flush_output

Description flush_output(SorA)는 버퍼링된 출력 문자/바이트를 스트림으로 보내요. flush_output/0은 현재 출력 스트림에 적용돼요.

Errors

  • SorA가 변수 — instantiation_error
  • SorA가 변수도 스트림 항 또는 별칭도 아님 — domain_error(stream_or_alias, SorA)
  • SorA가 열린 스트림과 연관되지 않음 — existence_error(stream, SorA)
  • SorA가 입력 스트림 — permission_error(output, stream, SorA)

Portability: ISO 술어.

current_stream/1

Templates

current_stream(?stream)

Description current_stream(Stream)은 Stream과 통일하는 스트림 항이 존재하면 성공해요. 이 술어는 백트래킹 시 재실행 가능해요.

Errors

  • Stream이 변수도 스트림 항도 아님 — domain_error(stream, Stream)

Portability: GNU Prolog 술어.

stream_property/2

Templates

stream_property(?stream, ?stream_property)

Description stream_property(Stream, Property)current_stream(Stream)이 성공하고(8.10.9절) Property가 스트림의 속성 중 하나와 통일하면 성공해요. 이 술어는 백트래킹 시 재실행 가능해요.

스트림 속성:

  • file_name(F) — 연결된 소스/싱크의 이름.
  • mode(M) — M이 열기 모드(read, write, append).
  • input — 입력 스트림이면.
  • output — 출력 스트림이면.
  • alias(A) — A가 스트림의 별칭.
  • mirror(M) — M이 스트림의 미러 스트림.
  • type(T) — T가 스트림의 유형(text, binary).
  • reposition(R) — R이 재배치 불리언(true, false).
  • eof_action(A) — A가 파일 끝 동작(error, eof_code, reset).
  • buffering(B) — B가 버퍼링 모드(none, line, block).
  • end_of_stream(E) — E가 현재 end-of-stream 상태(not, at, past). 스트림 위치가 end-of-stream이면 E는 at과, past-end-of-stream이면 E는 past와, 그 외에는 E는 not과 통일.
  • position(P) — P가 현재 위치와 연관된 스트림 위치 항.

Errors

  • Stream이 변수 — instantiation_error
  • Stream이 변수도 스트림 항도 아님 — domain_error(stream, Stream)
  • Property가 변수도 스트림 속성도 아님 — domain_error(stream_property, Property)
  • Property = file_name(E), mode(E), alias(E), end_of_stream(E), eof_action(E), reposition(E), type(E) 또는 buffering(E)이고 E가 변수도 원자도 아님 — type_error(atom, E)

Portability: ISO 술어. buffering/1 속성은 GNU Prolog 확장.

at_end_of_stream/1, at_end_of_stream/0

Templates

at_end_of_stream(+stream_or_alias)
at_end_of_stream

Description at_end_of_stream(SorA)는 스트림 항 또는 별칭 SorA와 연관된 스트림이 end-of-stream 또는 past-end-of-stream 스트림 위치를 가지면 성공해요. 이 술어는 stream_property/2(8.10.10절)로 정의될 수 있어요. at_end_of_stream/0은 현재 입력 스트림에 적용돼요.

Errors

  • SorA가 변수 — instantiation_error
  • SorA가 변수도 스트림 항 또는 별칭도 아님 — domain_error(stream_or_alias, SorA)
  • SorA가 열린 스트림과 연관되지 않음 — existence_error(stream, SorA)
  • SorA가 출력 스트림 — permission_error(input, stream, SorA)

Portability: ISO 술어. permission_error(input, stream, SorA)는 GNU Prolog 확장.

stream_position/2

Templates

stream_position(+stream_or_alias, ?stream_position)

Description stream_position(SorA, Position)은 스트림 항 또는 별칭 SorA의 현재 위치와 연관된 스트림 위치 항과 Position을 통일하며 성공해요. 이 술어는 stream_property/2(8.10.10절)로 정의될 수 있어요.

Errors

  • SorA가 변수 — instantiation_error
  • SorA가 변수도 스트림 항 또는 별칭도 아님 — domain_error(stream_or_alias, SorA)
  • Position이 변수도 스트림 위치 항도 아님 — domain_error(stream_position, Position)
  • SorA가 열린 스트림과 연관되지 않음 — existence_error(stream, SorA)

Portability: GNU Prolog 술어.

set_stream_position/2

Templates

set_stream_position(+stream_or_alias, +stream_position)

Description set_stream_position(SorA, Position)은 스트림 항 또는 별칭 SorA와 연관된 스트림의 위치를 Position으로 설정해요. Position은 이전에 stream_property/2(8.10.10절) 또는 stream_position/2(8.10.12절)가 반환했어야 해요.

Errors

  • SorA가 변수 — instantiation_error
  • Position이 변수 — instantiation_error
  • SorA가 변수도 스트림 항 또는 별칭도 아님 — domain_error(stream_or_alias, SorA)
  • Position이 변수도 스트림 위치 항도 아님 — domain_error(stream_position, Position)
  • SorA가 열린 스트림과 연관되지 않음 — existence_error(stream, SorA)
  • SorA가 스트림 속성 reposition(false)를 가짐 — permission_error(reposition, stream, SorA)

Portability: ISO 술어.

seek/4

Templates

seek(+stream_or_alias, +stream_seek_method, +integer, ?integer)

Description seek(SorA, Whence, Offset, NewOffset)은 Whence에 따라 스트림 항 또는 별칭 SorA와 연관된 스트림의 위치를 Offset으로 설정하고 파일 시작으로부터의 새 오프셋과 NewOffset을 통일해요. seek/4는 바이너리 스트림에서만 사용할 수 있어요. Whence는 다음 중 하나의 원자예요:

  • bof — 위치가 파일 시작에 상대적으로 설정됨(Offset은 ≥ 0이어야 함).
  • current — 위치가 현재 위치에 상대적으로 설정됨(Offset은 ≥ 0 또는 ≤ 0일 수 있음).
  • eof — 위치가 파일 끝에 상대적으로 설정됨(Offset은 ≤ 0이어야 함).

이 술어는 C Unix 함수 lseek(2)에 대한 인터페이스예요.

Errors

  • SorA가 변수 — instantiation_error
  • Whence가 변수 — instantiation_error
  • Offset이 변수 — instantiation_error
  • SorA가 변수도 스트림 항 또는 별칭도 아님 — domain_error(stream_or_alias, SorA)
  • Whence가 변수도 원자도 아님 — type_error(atom, Whence)
  • Whence가 원자이지만 유효한 스트림 탐색 방법이 아님 — domain_error(stream_seek_method, Whence)
  • Offset이 변수도 정수도 아님 — type_error(integer, Offset)
  • NewOffset이 변수도 정수도 아님 — type_error(integer, NewOffset)
  • SorA가 열린 스트림과 연관되지 않음 — existence_error(stream, SorA)
  • SorA가 스트림 속성 reposition(false)를 가짐 — permission_error(reposition, stream, SorA)
  • SorA가 텍스트 스트림과 연관됨 — permission_error(reposition, text_stream, SorA)

Portability: GNU Prolog 술어.

character_count/2

Templates

character_count(+stream_or_alias, ?integer)

Description character_count(SorA, Count)은 스트림 항 또는 별칭 SorA와 연관된 스트림에서 읽힌/쓰인 문자/바이트의 수와 Count를 통일해요.

Errors

  • SorA가 변수 — instantiation_error
  • Count가 변수도 정수도 아님 — type_error(integer, Count)
  • SorA가 변수도 스트림 항 또는 별칭도 아님 — domain_error(stream_or_alias, SorA)
  • SorA가 열린 스트림과 연관되지 않음 — existence_error(stream, SorA)

Portability: GNU Prolog 술어.

line_count/2

Templates

line_count(+stream_or_alias, ?integer)

Description line_count(SorA, Count)은 스트림 항 또는 별칭 SorA와 연관된 스트림에서 읽힌/쓰인 줄의 수와 Count를 통일해요. 이 술어는 텍스트 스트림에서만 사용할 수 있어요.

Errors

  • SorA가 변수 — instantiation_error
  • Count가 변수도 정수도 아님 — type_error(integer, Count)
  • SorA가 변수도 스트림 항 또는 별칭도 아님 — domain_error(stream_or_alias, SorA)
  • SorA가 열린 스트림과 연관되지 않음 — existence_error(stream, SorA)
  • SorA가 바이너리 스트림과 연관됨 — permission_error(access, binary_stream, SorA)

Portability: GNU Prolog 술어.

line_position/2

Templates

line_position(+stream_or_alias, ?integer)

Description line_position(SorA, Count)은 스트림 항 또는 별칭 SorA와 연관된 스트림의 현재 줄에서 읽힌/쓰인 문자의 수와 Count를 통일해요. 이 술어는 텍스트 스트림에서만 사용할 수 있어요.

Errors

  • SorA가 변수 — instantiation_error
  • Count가 변수도 정수도 아님 — type_error(integer, Count)
  • SorA가 변수도 스트림 항 또는 별칭도 아님 — domain_error(stream_or_alias, SorA)
  • SorA가 열린 스트림과 연관되지 않음 — existence_error(stream, SorA)
  • SorA가 바이너리 스트림과 연관됨 — permission_error(access, binary_stream, SorA)

Portability: GNU Prolog 술어.

stream_line_column/3

Templates

stream_line_column(+stream_or_alias, ?integer, ?integer)

Description stream_line_column(SorA, Line, Column)은 스트림 항 또는 별칭 SorA와 연관된 스트림의 현재 줄 번호(각각 열 번호)와 Line(각각 Column)을 통일해요. 이 술어는 텍스트 스트림에서만 사용할 수 있어요. Line은 line_count/2(8.10.16절)가 반환한 값 + 1에, Column은 line_position/2(8.10.17절)가 반환한 값 + 1에 대응한다는 것을 참고해요.

Errors

  • SorA가 변수 — instantiation_error
  • Line이 변수도 정수도 아님 — type_error(integer, Line)
  • Column이 변수도 정수도 아님 — type_error(integer, Column)
  • SorA가 변수도 스트림 항 또는 별칭도 아님 — domain_error(stream_or_alias, SorA)
  • SorA가 열린 스트림과 연관되지 않음 — existence_error(stream, SorA)
  • SorA가 바이너리 스트림과 연관됨 — permission_error(access, binary_stream, SorA)

Portability: GNU Prolog 술어.

set_stream_line_column/3

Templates

set_stream_line_column(+stream_or_alias, +integer, +integer)

Description set_stream_line_column(SorA, Line, Column)은 줄 번호 Line과 열 번호 Column에 따라 스트림 항 또는 별칭 SorA와 연관된 스트림의 스트림 위치를 설정해요. 이 술어는 텍스트 스트림에서만 사용할 수 있어요. 먼저 스트림을 파일 시작으로 재배치한 다음 필요한 위치에 도달할 때까지 문자 하나씩 읽어요.

Errors

  • SorA가 변수 — instantiation_error
  • Line이 변수 — instantiation_error
  • Column이 변수 — instantiation_error
  • Line이 변수도 정수도 아님 — type_error(integer, Line)
  • Column이 변수도 정수도 아님 — type_error(integer, Column)
  • SorA가 변수도 스트림 항 또는 별칭도 아님 — domain_error(stream_or_alias, SorA)
  • SorA가 열린 스트림과 연관되지 않음 — existence_error(stream, SorA)
  • SorA가 바이너리 스트림과 연관됨 — permission_error(reposition, binary_stream, SorA)
  • SorA가 스트림 속성 reposition(false)를 가짐 — permission_error(reposition, stream, SorA)

Portability: GNU Prolog 술어.

add_stream_alias/2

Templates

add_stream_alias(+stream_or_alias, +atom)

Description add_stream_alias(SorA, Alias)은 스트림 항 또는 별칭 SorA와 연관된 스트림에 새 별칭으로 Alias를 추가해요.

Errors

  • SorA가 변수 — instantiation_error
  • Alias가 변수 — instantiation_error
  • Alias가 변수도 원자도 아님 — type_error(atom, Alias)
  • SorA가 변수도 스트림 항 또는 별칭도 아님 — domain_error(stream_or_alias, SorA)
  • SorA가 열린 스트림과 연관되지 않음 — existence_error(stream, SorA)
  • Alias가 이미 열린 스트림과 연관됨 — permission_error(add_alias, source_sink, alias(Alias))

Portability: GNU Prolog 술어.

current_alias/2

Templates

current_alias(?stream, ?atom)

Description current_alias(Stream, Alias)current_stream(Stream)이 성공하고(8.10.9절) Alias가 스트림의 별칭 중 하나와 통일하면 성공해요. stream_property/2(8.10.10절)로 정의될 수 있어요. 이 술어는 백트래킹 시 재실행 가능해요.

Errors

  • Stream이 변수도 스트림 항도 아님 — domain_error(stream, Stream)
  • Alias가 변수도 원자도 아님 — type_error(atom, Alias)

Portability: GNU Prolog 술어.

add_stream_mirror/2

Templates

add_stream_mirror(+stream_or_alias, +stream_or_alias)

Description add_stream_mirror(SorA, Mirror)은 스트림 항 또는 별칭 SorA와 연관된 스트림에 스트림 항 또는 별칭 Mirror와 연관된 스트림을 새 미러로 추가해요. 이후 SorA에서 읽힌(또는 쓰여진) 모든 문자(또는 바이트)가 Mirror에도 쓰여져요. 이 미러링은 Mirror가 remove_stream_mirror/2(8.10.23절)로 명시적으로 제거되거나 Mirror가 닫힐 때 암시적으로 제거될 때까지 계속돼요. 같은 스트림에 여러 미러 스트림이 연관될 수 있어요. Mirror가 SorA와 같은 스트림을 나타내거나 Mirror가 이미 SorA의 미러이면 미러가 추가되지 않아요.

Errors

  • SorA가 변수 — instantiation_error
  • Mirror가 변수 — instantiation_error
  • SorA가 변수도 스트림 항 또는 별칭도 아님 — domain_error(stream_or_alias, SorA)
  • Mirror가 변수도 스트림 항 또는 별칭도 아님 — domain_error(stream_or_alias, Mirror)
  • SorA가 열린 스트림과 연관되지 않음 — existence_error(stream, SorA)
  • Mirror가 열린 스트림과 연관되지 않음 — existence_error(stream, Mirror)
  • Mirror가 입력 스트림 — permission_error(output, stream, Mirror)

Portability: GNU Prolog 술어.

remove_stream_mirror/2

Templates

remove_stream_mirror(+stream_or_alias, +stream_or_alias)

Description remove_stream_mirror(SorA, Mirror)은 스트림 항 또는 별칭 SorA와 연관된 스트림의 미러 목록에서 스트림 항 또는 별칭 Mirror와 연관된 스트림을 제거해요. Mirror가 SorA의 미러 스트림이 아니면 이 술어는 실패해요.

Errors

  • SorA가 변수 — instantiation_error
  • Mirror가 변수 — instantiation_error
  • SorA가 변수도 스트림 항 또는 별칭도 아님 — domain_error(stream_or_alias, SorA)
  • Mirror가 변수도 스트림 항 또는 별칭도 아님 — domain_error(stream_or_alias, Mirror)
  • SorA가 열린 스트림과 연관되지 않음 — existence_error(stream, SorA)
  • Mirror가 열린 스트림과 연관되지 않음 — existence_error(stream, Mirror)

Portability: GNU Prolog 술어.

current_mirror/2

Templates

current_mirror(?stream, ?stream)

Description current_mirror(Stream, M)current_stream(Stream)이 성공하고(8.10.9절) M이 스트림의 미러 중 하나와 통일하면 성공해요. stream_property/2(8.10.10절)로 정의될 수 있어요. 이 술어는 백트래킹 시 재실행 가능해요.

Errors

  • Stream이 변수도 스트림 항도 아님 — domain_error(stream, Stream)
  • M이 변수도 스트림 항도 아님 — domain_error(stream, M)

Portability: GNU Prolog 술어.

set_stream_type/2

Templates

set_stream_type(+stream_or_alias, +atom)

Description set_stream_type(SorA, Type)은 스트림 항 또는 별칭 SorA와 연관된 유형을 갱신해요. Type의 값은 open/4(8.10.6절)에서처럼 text 또는 binary 원자예요. 스트림의 유형은 어떤 입출력 연산이 실행되기 전에만 바꿀 수 있어요.

Errors

  • SorA가 변수 — instantiation_error
  • Type이 변수 — instantiation_error
  • Type이 변수도 유효한 유형도 아님 — domain_error(stream_type, Type)
  • SorA가 변수도 스트림 항 또는 별칭도 아님 — domain_error(stream_or_alias, SorA)
  • SorA가 열린 스트림과 연관되지 않음 — existence_error(stream, SorA)
  • 입출력 연산이 이미 SorA에서 실행됨 — permission_error(modify, stream, SorA)

Portability: GNU Prolog 술어.

set_stream_eof_action/2

Templates

set_stream_eof_action(+stream_or_alias, +atom)

Description set_stream_eof_action(SorA, Action)은 스트림 항 또는 별칭 SorA와 연관된 eof_action 옵션을 갱신해요. Action의 값은 open/4(8.10.6절)에서처럼 error, eof_code, reset 중 하나의 원자예요.

Errors

  • SorA가 변수 — instantiation_error
  • Action이 변수 — instantiation_error
  • Action이 변수도 유효한 eof 동작도 아님 — domain_error(eof_action, Action)
  • SorA가 변수도 스트림 항 또는 별칭도 아님 — domain_error(stream_or_alias, SorA)
  • SorA가 열린 스트림과 연관되지 않음 — existence_error(stream, SorA)
  • SorA가 출력 스트림 — permission_error(modify, stream, SorA)

Portability: GNU Prolog 술어.

set_stream_buffering/2

Templates

set_stream_buffering(+stream_or_alias, +atom)

Description set_stream_buffering(SorA, Buffering)은 스트림 항 또는 별칭 SorA와 연관된 버퍼링 모드를 갱신해요. Buffering의 값은 open/4(8.10.6절)에서처럼 none, line 또는 block 중 하나의 원자예요. 이 술어는 스트림을 연 후 그에 대한 다른 어떤 연산도 수행되기 전에만 사용될 수 있어요.

Errors

  • SorA가 변수 — instantiation_error
  • Buffering이 변수 — instantiation_error
  • Buffering이 변수도 유효한 버퍼링 모드도 아님 — domain_error(buffering_mode, Buffering)
  • SorA가 변수도 스트림 항 또는 별칭도 아님 — domain_error(stream_or_alias, SorA)
  • SorA가 열린 스트림과 연관되지 않음 — existence_error(stream, SorA)

Portability: GNU Prolog 술어.

더 알아보기