Libchecker:Функция checker main

From EjudgeWiki

Навигация: Главная страница/Система ejudge/Проверяющие программы/libchecker/Функция checker_main

Функция checker_main в проверяющей программе играет роль функции main в обычной программе на C. После инициализации проверяющей программы управление передаётся на эту функцию.

Функция checker_main должна удовлетворять следующему прототипу:

int checker_main(int argc, char **argv);

Параметры argc и argv содержат количество аргументов командной строки и сами аргументы (точно так же, как и для функции main). Возвращаемое значение функции checker_main — это код завершения проверяющей программы.

Разбор аргументов командной строки проверяющей программы выполняется при инициализации проверяющей программы ещё до запуска checker_main, поэтому проверяющая программа может сразу же пользоваться глобальными переменными и функциями библиотеки libchecker.

Для завершения работы проверяющей программы рекомендуется использовать функции библиотеки libchecker checker_OK, fatal, fatal_CF, fatal_PE, fatal_WA, fatal_read. Все эти функции вызывают стандартную функцию exit с соответствующим кодом завершения, то есть после их вызова управление никогда не возвращается в проверяющую программу.

Функция checker_main в типичной случае может выглядеть следующим образом:

int checker_main(int argc, char **argv)
{
  // код проверяющей программы, который вызывает функции семейства fatal* в случае обнаружения ошибки
  checker_OK();
}