Libchecker:fatal read

From EjudgeWiki

Навигация: Система ejudge/Проверяющие программы/libchecker/Функции/Завершение работы/fatal_read

void fatal_read(int ind, char const *format, ...);

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

Аргумент ind определяет, к какому из трёх входных потоков проверяющей программы относится ошибка. Допустимы следующие значения:

  • 0 - файл с тестовыми данными
  • 1 - файл с результатом работы тестируемой программы
  • 2 - файл с эталонным ответом

Если параметр ind равен 0 или 2, то код завершения соответствует внутренней ошибки проверки, если параметр ind равен 1, то — ошибке неправильного формата результата.

Аргумент format задаёт спецификацию форматного преобразования функции printf для диагностического сообщения. Символ перехода на новую строку \n добавляется при выводе автоматически, поэтому он не требуется в конце диагностического сообщения.

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

Пример:

fatal_read(1, ") expected");