Difference between revisions of "Libchecker:Функция checker main"

From EjudgeWiki
 
Line 10: Line 10:
 
[[коды завершения проверяющей программы|код завершения проверяющей программы]].
 
[[коды завершения проверяющей программы|код завершения проверяющей программы]].
  
Разбор аргументов командной строки проверяющей программы выполняется при инициализации проверяющей программы ещё до запуска checker_main, поэтому проверяющая программа может сразу же пользоваться глобальными переменными и функциями библиотеки libchecker.
+
Разбор [[параметры командной строки проверяющей программы|аргументов командной строки]] проверяющей программы выполняется при инициализации проверяющей программы ещё до запуска 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();
 +
}

Revision as of 09:22, 4 December 2006

Вернуться на страницу библиотеки libchecker.

Функция 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();
}