바이트 입출력

바이트 입출력

이진 스트림에 단일 바이트를 입출력하는 내장 술어들을 설명해요.

출처: GNU Prolog Manual - Byte input/output

본문

이 내장 술어들은 이진 스트림에서/으로 단일 바이트를 입출력할 수 있게 해줘요. -1이 파일 끝을 나타내기 위해 반환돼요.

get_byte/2, get_byte/1

Templates

get_byte(+stream_or_alias, ?in_byte)
get_byte(?in_byte)

Description get_byte(SorA, Byte)Byte가 스트림 항 또는 별칭 SorA와 연관된 스트림에서 읽은 다음 바이트와 통일되면 성공해요. get_byte/1은 현재 입력 스트림에 적용돼요.

Errors

  • SorA가 변수 - instantiation_error
  • Byte가 변수도 in-byte도 아님 - type_error(in_byte, Byte)
  • SorA가 변수도 스트림 항 또는 별칭도 아님 - domain_error(stream_or_alias, SorA)
  • SorA가 열린 스트림과 연관되지 않음 - existence_error(stream, SorA)
  • SorA가 출력 스트림 - permission_error(input, stream, SorA)
  • SorA가 텍스트 스트림과 연관됨 - permission_error(input, text_stream, SorA)
  • SorAend_of_stream(past)eof_action(error) 스트림 속성 가짐 - permission_error(input, past_end_of_stream, SorA)

Portability: ISO 술어.

peek_byte/2, peek_byte/1

Templates

peek_byte(+stream_or_alias, ?in_byte)
peek_byte(?in_byte)

Description peek_byte(SorA, Byte)Byte가 스트림 항 또는 별칭 SorA와 연관된 스트림에서 다음에 읽힐 바이트와 통일되면 성공해요. 바이트는 읽히지 않아요. peek_byte/1은 현재 입력 스트림에 적용돼요.

Errors

  • SorA가 변수 - instantiation_error
  • Byte가 변수도 in-byte도 아님 - type_error(in_byte, Byte)
  • SorA가 변수도 스트림 항 또는 별칭도 아님 - domain_error(stream_or_alias, SorA)
  • SorA가 열린 스트림과 연관되지 않음 - existence_error(stream, SorA)
  • SorA가 출력 스트림 - permission_error(input, stream, SorA)
  • SorA가 텍스트 스트림과 연관됨 - permission_error(input, text_stream, SorA)
  • SorAend_of_stream(past)eof_action(error) 스트림 속성 가짐 - permission_error(input, past_end_of_stream, SorA)

Portability: ISO 술어.

unget_byte/2, unget_byte/1

Templates

unget_byte(+stream_or_alias, +byte)
unget_byte(+byte)

Description unget_byte(SorA, Byte)Byte를 스트림 항 또는 별칭 SorA와 연관된 스트림에 다시 밀어 넣어요. Byteget_byte/2가 읽을 다음 바이트가 돼요. 연속해서 다시 밀어 넣을 수 있는 최대 바이트 수는 max_unget Prolog 플래그(8.22.1절)로 주어져요. unget_byte/1은 현재 입력 스트림에 적용돼요.

Errors

  • SorA가 변수 - instantiation_error
  • Byte가 변수 - instantiation_error
  • Byte가 변수도 바이트도 아님 - type_error(byte, Byte)
  • SorA가 변수도 스트림 항 또는 별칭도 아님 - domain_error(stream_or_alias, SorA)
  • SorA가 열린 스트림과 연관되지 않음 - existence_error(stream, SorA)
  • SorA가 출력 스트림 - permission_error(input, stream, SorA)
  • SorA가 텍스트 스트림과 연관됨 - permission_error(input, text_stream, SorA)

Portability: GNU Prolog 술어.

put_byte/2, put_byte/1

Templates

put_byte(+stream_or_alias, +byte)
put_byte(+byte)

Description put_byte(SorA, Byte)Byte를 스트림 항 또는 별칭 SorA와 연관된 스트림에 써요. put_byte/1은 현재 출력 스트림에 적용돼요.

Errors

  • SorA가 변수 - instantiation_error
  • Byte가 변수 - instantiation_error
  • Byte가 변수도 바이트도 아님 - type_error(byte, Byte)
  • SorA가 변수도 스트림 항 또는 별칭도 아님 - domain_error(stream_or_alias, SorA)
  • SorA가 열린 스트림과 연관되지 않음 - existence_error(stream, SorA)
  • SorA가 출력 스트림 - permission_error(output, stream, SorA)
  • SorA가 텍스트 스트림과 연관됨 - permission_error(output, text_stream, SorA)

Portability: GNU Prolog 술어.

더 알아보기