Difference between revisions of "Libchecker:Функция checker main"
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | + | Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Проверяющие программы]]/[[libchecker]]/[[Libchecker:Функция checker main|Функция checker_main]] | |
Функция checker_main в проверяющей программе играет роль функции main в обычной программе на C. | Функция checker_main в проверяющей программе играет роль функции main в обычной программе на C. | ||
Line 13: | Line 13: | ||
Для завершения работы проверяющей программы рекомендуется использовать функции библиотеки libchecker | Для завершения работы проверяющей программы рекомендуется использовать функции библиотеки libchecker | ||
− | [[checker_OK]], [[fatal]], [[fatal_CF]], [[fatal_PE]], [[fatal_WA]], [[fatal_read]]. Все эти функции | + | [[libchecker:checker_OK|checker_OK]], [[libchecker:fatal|fatal]], [[libchecker:fatal_CF|fatal_CF]], [[libchecker:fatal_PE|fatal_PE]], [[libchecker:fatal_WA|fatal_WA]], [[libchecker:fatal_read|fatal_read]]. Все эти функции |
вызывают стандартную функцию exit с соответствующим кодом завершения, то есть после их вызова управление | вызывают стандартную функцию exit с соответствующим кодом завершения, то есть после их вызова управление | ||
никогда не возвращается в проверяющую программу. | никогда не возвращается в проверяющую программу. |
Latest revision as of 07:20, 23 August 2008
Навигация: Главная страница/Система 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(); }