Spec-Zone.ru › OCaml 5.0

Модуль Sys

module Sys: sig .. end

Интерфейс системы.

Каждая функция в этом модуле вызывает Sys_error с информативным сообщением, когда системный вызов сигнализирует об ошибке.

val argv : string array

Аргументы командной строки, переданные процессу. Первый элемент — имя команды, используемой для вызова программы. Следующие элементы — аргументы командной строки, переданные программе.

val executable_name : string

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

val file_exists : string -> bool

Проверка, существует ли файл с данным именем.

val is_directory : string -> bool

Возвращает true если заданное имя относится к каталогу, false если оно относится к другому типу файла.

  • Since 3.10.0
  • Raises Sys_error если файл с данным именем не существует.
val remove : string -> unit

Удаление заданного имени файла из файловой системы.

val rename : string -> string -> unit

Переименование файла. rename oldpath newpath переименовывает файл под именем oldpath, присваивая ему новое имя newpath, перемещая его между директориями при необходимости. Если newpath уже существует, его содержимое будет заменено содержимым файла oldpath. В зависимости от операционной системы, метаданные (разрешения, владелец и т. д.) файла newpath могут быть сохранены или заменены метаданными файла oldpath.

  • Since 4.06 касательно поведения «замены существующего файла»
val getenv : string -> string

Возвращение значения, связанного с переменной в среде процесса.

  • Raises Not_found если переменная не определена.
val getenv_opt : string -> string option

Возвращает значение, связанное с переменной в среде процесса, или None если переменная не определена.

  • Since 4.05
val command : string -> int

Выполнение заданной оболочкой команды и возвращение её кода выхода.

Аргумент Sys.command обычно представляет собой имя команды, за которым следуют нуль, один или несколько аргументов, разделенных пробелами. Указанный аргумент интерпретируется оболочкой: либо оболочкой Windows cmd.exe для Win32-портов OCaml, либо POSIX-оболочкой sh для других портов. Она может содержать команды оболочки, такие как echo, а также специальные символы, такие как перенаправления файлов > и <, которые будут учтены оболочкой.

Напротив, пробелы или специальные символы оболочки, встречающиеся в именах команд или в их аргументах, должны быть заключены в кавычки или экранированы, чтобы оболочка не интерпретировала их. Правила цитирования различаются между POSIX-оболочкой и оболочкой Windows. Filename.quote_command выполняет соответствующее цитирование, исходя из имени команды, списка аргументов и необязательных перенаправлений файлов.

val time : unit -> float

Возвращение процессорного времени, в секундах, используемого программой с момента начала выполнения.

val chdir : string -> unit

Изменение текущей рабочей директории процесса.

val mkdir : string -> int -> unit

Создание директории с заданными правами.

  • Since 4.12.0
val rmdir : string -> unit

Удаление пустой директории.

  • Since 4.12.0
val getcwd : unit -> string

Возвращение текущей рабочей директории процесса.

val readdir : string -> string array

Возвращение имён всех файлов, присутствующих в данной директории. Имена, обозначающие текущую директорию и родительскую директорию ("." и ".." в Unix), не возвращаются. Каждая строка в результате — имя файла, а не полный путь. Нет гарантии, что имена файлов в результирующем массиве будут появляться в определённом порядке; они не гарантируются, в частности, что будут появляться в алфавитном порядке.

val interactive : bool ref

Эта ссылка изначально установлена на false в автономных программах и на true если код выполняется в интерактивной системе верхнего уровня ocaml.

  • Предупреждение unsynchronized_access. Интерактивный статус — это изменчивое глобальное состояние.
val os_type : string

Операционная система, на которой в данный момент выполняется программа OCaml. Одна из

  • "Unix" (для всех версий Unix, включая Linux и Mac OS X),
  • "Win32" (для MS-Windows, OCaml, скомпилированный с MSVC++ или Mingw),
  • "Cygwin" (для MS-Windows, OCaml, скомпилированный с Cygwin).
type backend_type = 
| Native
| Bytecode
| Other of string

В настоящее время официальное распределение поддерживает только Native и Bytecode, но могут быть другие бэкэнды с альтернативными компиляторами, например, javascript.

  • Since 4.04.0
val backend_type : backend_type

Тип бэкэнда, который в данный момент выполняет программу OCaml.

  • Since 4.04.0
val unix : bool

Истина, если Sys.os_type = "Unix".

  • Since 4.01.0
val win32 : bool

Истина, если Sys.os_type = "Win32".

  • Since 4.01.0
val cygwin : bool

Истина, если Sys.os_type = "Cygwin".

  • Since 4.01.0
val word_size : int

Размер одного слова в машине, на которой в данный момент выполняется программа OCaml, в битах: 32 или 64.

val int_size : int

Размер int, в битах. Он равен 31 (соответственно 63), когда используется OCaml на 32-битной (соответственно 64-битной) платформе. Он может отличаться для других реализаций, например, он может быть равен 32 битам при компиляции в JavaScript.

  • Since 4.03.0
val big_endian : bool

Является ли машина, на которой в настоящее время выполняется программа Caml, большого порядка.

  • Since 4.00.0
val max_string_length : int

Максимальная длина строк и последовательностей байтов.

val max_array_length : int

Максимальная длина обычного массива (то есть массива, элементы которого не являются типа float). Максимальная длина float array равна max_floatarray_length если OCaml был сконфигурирован с --enable-flat-float-array и max_array_length если сконфигурирован с --disable-flat-float-array.

val max_floatarray_length : int

Максимальная длина floatarray. Это также максимальная длина float array при конфигурации OCaml с --enable-flat-float-array.

val runtime_variant : unit -> string

Возвращение имени варианта выполнения, на котором работает программа. Обычно это аргумент, переданный -runtime-variant во время компиляции, но для байткода его можно изменить после компиляции.

  • Since 4.03.0
val runtime_parameters : unit -> string

Возвращение значения параметров выполнения в том же формате, что и содержимое переменной среды OCAMLRUNPARAM.

  • Since 4.03.0

Обработка сигналов

type signal_behavior = 
| Signal_default
| Signal_ignore
| Signal_handle of (int -> unit)

Что делать при получении сигнала:

  • Signal_default: принять поведение по умолчанию (обычно: прервать программу)
  • Signal_ignore: игнорировать сигнал
  • Signal_handle f: вызвать функцию f, передав ей номер сигнала в качестве аргумента.
val signal : int -> signal_behavior -> signal_behavior

Установить поведение системы при получении заданного сигнала. Первый аргумент — номер сигнала. Возвращается поведение, которое ранее было связано с сигналом. Если номер сигнала недействителен (или недоступен в вашей системе), генерируется исключение Invalid_argument.

val set_signal : int -> signal_behavior -> unit

То же, что и Sys.signal, но значение возврата игнорируется.

Номера сигналов для стандартных POSIX-сигналов.

val sigabrt : int

Ненормальное завершение

val sigalrm : int

Таймаут

val sigfpe : int

Арифметическая ошибка

val sighup : int

Отключение управляющего терминала

val sigill : int

Неверная инструкция для оборудования

val sigint : int

Интерактивное прерывание (ctrl-C)

val sigkill : int

Завершение (не может быть проигнорировано)

val sigpipe : int

Разрыв канала

val sigquit : int

Интерактивное завершение

val sigsegv : int

Неверная ссылка на память

val sigterm : int

Завершение

val sigusr1 : int

Сигнал, определенный приложением, 1

val sigusr2 : int

Сигнал, определенный приложением, 2

val sigchld : int

Процесс-потомок завершен

val sigcont : int

Продолжить

val sigstop : int

Остановить

val sigtstp : int

Интерактивная остановка

val sigttin : int

Чтение из фонового процесса с терминала

val sigttou : int

Запись в фоновый процесс с терминала

val sigvtalrm : int

Таймаут в виртуальном времени

val sigprof : int

Прерывание профилирования

val sigbus : int

Ошибка шины

  • Since 4.03
val sigpoll : int

Обрабатываемое событие

  • Since 4.03
val sigsys : int

Неправильный аргумент для процедуры

  • Since 4.03
val sigtrap : int

Захват отладки/точки останова

  • Since 4.03
val sigurg : int

Неотложное условие на сокете

  • Since 4.03
val sigxcpu : int

Таймаут во времени процессора

  • Since 4.03
val sigxfsz : int

Превышен предел размера файла

  • Since 4.03
exception Break

Исключение, поднятое при интерактивном прерывании, если Sys.catch_break включено.

val catch_break : bool -> unit

catch_break определяет, завершает ли интерактивное прерывание (ctrl-C) программу или поднимает исключение Break. Вызов catch_break true позволяет активировать поднятие Break, а catch_break false позволяет системе завершать программу при прерывании пользователя.

val ocaml_version : string

ocaml_version — это версия OCaml. Это строка вида "major.minor[.patchlevel][(+|~)additional-info]", где major, minor, и patchlevel — целые числа, а additional-info — произвольная строка. Часть [.patchlevel] отсутствовала до версии 3.08.0 и стала обязательной начиная с 3.08.0. Часть additional-info может отсутствовать.

val development_version : bool

true если это версия разработки, false в противном случае.

  • Since 4.14.0
type extra_prefix = 
| Plus
| Tilde
type extra_info = extra_prefix * string 
  • Since 4.14
type ocaml_release_info = {
major : int;
minor : int;
patchlevel : int;
extra : extra_info option;
}
  • Since 4.14
val ocaml_release : ocaml_release_info

ocaml_release — это версия OCaml.

  • Since 4.14
val enable_runtime_warnings : bool -> unit

Управление тем, может ли система выполнения OCaml генерировать предупреждения в stderr. В настоящее время поддерживается только одно предупреждение, которое срабатывает, когда канал, созданный функциями open_*, завершается без закрытия. Предупреждения системы выполнения по умолчанию отключены.

  • Since 4.03.0
  • Предупреждение unsynchronized_access. Статус предупреждений выполнения — это изменяемое глобальное состояние.
val runtime_warnings_enabled : unit -> bool

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

  • Since 4.03.0
  • Предупреждение unsynchronized_access. Статус предупреждений выполнения — это изменяемое глобальное состояние.

Оптимизация

val opaque_identity : 'a -> 'a

Для целей оптимизации, opaque_identity ведет себя как неизвестная (а значит, возможно, с побочными эффектами) функция.

Во время выполнения opaque_identity исчезает полностью.

Типичное использование этой функции — предотвратить оптимизацию чистых вычислений в циклах бенчмаркинга. Например:

      for _round = 1 to 100_000 do
        ignore (Sys.opaque_identity (my_pure_computation ()))
      done
    
  • Since 4.03.0
module Immediate64: sig .. end

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

Spec-Zone.ru

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