Spec-Zone.ru › OCaml 4.14

Модуль Out_channel

module Out_channel: sig .. end

Выходные каналы.

  • Since 4.14.0
type t = out_channel 

Тип выходного канала.

type open_flag = open_flag = 
| Open_rdonly (*

открыт для чтения.

*)
| Open_wronly (*

открыт для записи.

*)
| Open_append (*

открыт для добавления: всегда записывает в конец файла.

*)
| Open_creat (*

создаёт файл, если он не существует.

*)
| Open_trunc (*

очищает файл, если он уже существует.

*)
| Open_excl (*

возвращает ошибку, если Open_creat и файл уже существует.

*)
| Open_binary (*

открытие в бинарном режиме (без преобразований).

*)
| Open_text (*

открытие в текстовом режиме (могут выполняться преобразования).

*)
| Open_nonblock (*

открытие в неблокирующем режиме.

*)

Режимы открытия для Out_channel.open_gen.

val stdout : t

Стандартный вывод для процесса.

val stderr : t

Стандартный вывод ошибок для процесса.

val open_bin : string -> t

Открыть указанный файл для записи и вернуть новый выходной канал на этот файл, размещённый в начале файла. Файл усекается до нулевой длины, если он уже существует. Он создаётся, если его ещё нет.

val open_text : string -> t

То же, что и Out_channel.open_bin, но файл открывается в текстовом режиме, чтобы перевод новой строки происходил во время записи. На операционных системах, которые не различают текстовый и двоичный режимы, эта функция ведет себя как Out_channel.open_bin.

val open_gen : open_flag list -> int -> string -> t

open_gen mode perm filename открывает указанный файл для записи, как описано выше. Дополнительный аргумент mode задаёт режим открытия. Дополнительный аргумент perm задаёт права доступа к файлу, в случае необходимости его создания. Out_channel.open_text и Out_channel.open_bin являются частными случаями этой функции.

val with_open_bin : string -> (t -> 'a) -> 'a

with_open_bin fn f открывает канал oc для файла fn и возвращает f
    oc
. После того, как f вернётся, либо со значением, либо вызвав исключение, oc гарантированно будет закрыт.

val with_open_text : string -> (t -> 'a) -> 'a

Как Out_channel.with_open_bin, но канал открывается в текстовом режиме (см. Out_channel.open_text).

val with_open_gen : open_flag list -> int -> string -> (t -> 'a) -> 'a

Как Out_channel.with_open_bin, но можно указать режим открытия и права доступа к файлу в случае необходимости его создания (см. Out_channel.open_gen).

val seek : t -> int64 -> unit

seek chan pos устанавливает текущую позицию записи в pos для канала chan. Это работает только для обычных файлов. В случае файлов других типов (например, терминалов, каналов и сокетов), поведение не определено.

val pos : t -> int64

Возвращает текущую позицию записи для заданного канала. Не работает для каналов, открытых с флагом Open_append (возвращает неопределённые результаты).

Для файлов, открытых в текстовом режиме под Windows, возвращаемая позиция является приблизительной (из-за преобразования конца строки); в частности, сохранение текущей позиции с помощью Out_channel.pos, а затем возврат к этой позиции с помощью Out_channel.seek не будет работать. Для того, чтобы этот фрагмент кода работал надёжно и переносимо, файл должен быть открыт в двоичном режиме.

val length : t -> int64

Возвращает размер (количество символов) обычного файла, для которого открыт данный канал. Если канал открыт для файла, который не является обычным файлом, результат бессмыслен.

val close : t -> unit

Закрывает данный канал, очищая все буферизованные операции записи. Функции вывода возбуждают исключение Sys_error при применении к закрытому выходному каналу, за исключением Out_channel.close и Out_channel.flush, которые ничего не делают при применении к уже закрытому каналу. Обратите внимание, что Out_channel.close может вызвать Sys_error если операционная система сообщит об ошибке при сбросе или закрытии.

val close_noerr : t -> unit

То же, что и Out_channel.close, но игнорирует все ошибки.

val flush : t -> unit

Очищает буфер, связанный с данным выходным каналом, выполняя все ожидающие записи в этом канале. Интерактивные программы должны быть внимательны к очистке стандартного вывода и стандартного вывода ошибок в нужное время.

val flush_all : unit -> unit

Очистить все открытые выходные каналы; игнорировать ошибки.

val output_char : t -> char -> unit

Записать символ в заданный выходной канал.

val output_byte : t -> int -> unit

Записать целое число 8 бит (как единственный символ с этим кодом) в заданный выходной канал. Заданное целое число берётся по модулю 256.

val output_string : t -> string -> unit

Записать строку в данный выходной канал.

val output_bytes : t -> bytes -> unit

Записать последовательность байтов в данный выходной канал.

val output : t -> bytes -> int -> int -> unit

output oc buf pos len записывает len символов из последовательности байтов buf, начиная с смещения pos, в заданный выходной канал oc.

  • Raises Invalid_argument если pos и len не обозначают допустимый диапазон buf.
val output_substring : t -> string -> int -> int -> unit

То же, что и Out_channel.output, но принимает строку в качестве аргумента вместо последовательности байтов.

val set_binary_mode : t -> bool -> unit

set_binary_mode oc true устанавливает канал oc в двоичный режим: никакие преобразования не происходят во время вывода.

set_binary_mode oc false устанавливает канал oc в текстовый режим: в зависимости от операционной системы, некоторые преобразования могут происходить во время вывода. Например, под Windows, символы новой строки будут преобразованы из \n в \r\n.

Эта функция не имеет эффекта на операционных системах, не различающих текстовый и двоичный режимы.

val set_buffered : t -> bool -> unit

set_buffered oc true устанавливает канал oc в режим буферизации. В этом режиме вывод данных на oc будет буферизоваться до тех пор, пока внутренний буфер не заполнится или не будет вызвана функция Out_channel.flush или Out_channel.flush_all, в этот момент данные будут отправлены на устройство вывода.

set_buffered oc false устанавливает канал oc в режим небуферизованного вывода. В этом режиме вывод данных на oc будет отправлен на устройство вывода немедленно.

Все каналы по умолчанию открыты в режиме буферизации.

val is_buffered : t -> bool

is_buffered oc возвращает значение, указывающее, является ли канал oc буферизованным (см. Out_channel.set_buffered).

© 1995-2022 INRIA.
https://v2.ocaml.org/releases/4.14/htmlman/libref/Out_channel.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API