Difference between revisions of "Libchecker:Функция checker main"
(3 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 10: | Line 10: | ||
[[коды завершения проверяющей программы|код завершения проверяющей программы]]. | [[коды завершения проверяющей программы|код завершения проверяющей программы]]. | ||
− | Разбор аргументов командной строки проверяющей программы выполняется при инициализации проверяющей программы ещё до запуска checker_main, поэтому проверяющая программа может сразу же пользоваться глобальными переменными и функциями библиотеки libchecker. | + | Разбор [[параметры командной строки проверяющей программы|аргументов командной строки]] проверяющей программы выполняется при инициализации проверяющей программы ещё до запуска checker_main, поэтому проверяющая программа может сразу же пользоваться глобальными переменными и функциями библиотеки libchecker. |
+ | |||
+ | Для завершения работы проверяющей программы рекомендуется использовать функции библиотеки libchecker | ||
+ | [[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 с соответствующим кодом завершения, то есть после их вызова управление | ||
+ | никогда не возвращается в проверяющую программу. | ||
+ | |||
+ | Функция checker_main в типичной случае может выглядеть следующим образом: | ||
+ | int checker_main(int argc, char **argv) | ||
+ | { | ||
+ | // код проверяющей программы, который вызывает функции семейства fatal* в случае обнаружения ошибки | ||
+ | checker_OK(); | ||
+ | } |
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(); }