1.2.38. $I или $IOCHECKS : Проверка ввода/вывода

Вверх  Предыдущий  Следующий

Директива {$I-} или {$IOCHECKS OFF} указывает компилятору, что не нужно генерировать проверку кода ввода/вывода в программе. По умолчанию компилятор генерирует проверку кода ввода/вывода. Это поведение можно настроить глобально с помощью переключателя ‑Ci.

Если компиляция использует переключатель -Ci, то компилятор Free Pascal вставляет проверку кода ввода/вывода после каждого вызова кода ввода/вывода. Если происходит ошибка во время ввода или вывода, то будет генерироваться ошибка времени выполнения. Это переключатель можно также использовать отмены проверки.

Если генерируется код проверки ввода/вывода, то проверить, если что-то пошло не так, можно с помощью функции IOResult.

Наоборот, директива {$I+} включает проверку вода/вывода до тех пор, пока не встретится директива выключения проверки.

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

assign(f, 'file.txt');
{$I-}
rewrite(f);
{$I+}
if IOResult<>0 then
  begin
    Writeln('Ошибка открытия файла: "file.txt"');
    exit
  end;

См. описание функции IOResult в Справочное руководство Free Pascal, где можно найти список всех возможных ошибок, которые могут произойти при проверке ввода/вывода.