Libchecker:fatal read

From EjudgeWiki
Revision as of 14:34, 19 December 2006 by Cher (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Вернуться к функциям завершения работы.

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(") expected");