Difference between revisions of "Libchecker:Заголовочные файлы"
Line 1: | Line 1: | ||
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Проверяющие программы]]/[[libchecker]]/[[Libchecker:Заголовочные файлы|Заголовочные файлы]] | Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Проверяющие программы]]/[[libchecker]]/[[Libchecker:Заголовочные файлы|Заголовочные файлы]] | ||
+ | |||
+ | === <tt>checker.h</tt> === | ||
Для использования библиотеки в тексте проверяющей программы необходимо подключить заголовочный файл checker.h. | Для использования библиотеки в тексте проверяющей программы необходимо подключить заголовочный файл checker.h. | ||
Line 35: | Line 37: | ||
#include <fcntl.h> | #include <fcntl.h> | ||
#include <dirent.h> | #include <dirent.h> | ||
+ | |||
+ | === <tt>checkutils.h</tt> === |
Revision as of 06:13, 4 July 2010
Навигация: Главная страница/Система ejudge/Проверяющие программы/libchecker/Заголовочные файлы
checker.h
Для использования библиотеки в тексте проверяющей программы необходимо подключить заголовочный файл checker.h. Перед директивой #include должно находиться определение макроса NEED_CORR, и могут находится определения макросов NEED_INFO и NEED_TGZ.
Макрос NEED_CORR должен быть определен в 1, если проверяющая программа использует файл с эталонным ответом. В секции описания задачи соответствующей задачи должна быть установлена конфигурационная переменная use_corr. Если файл с эталонным ответом не требуется, макрос NEED_CORR должен быть определен в 0.
Макрос NEED_INFO должен быть определен в 1, если проверяющая программа использует файл с дополнительной информацией о тесте. В секции описания задачи соответствующей задачи должна быть установлена конфигурационная переменная use_info. Если файл с дополнительной информацией о тесте не требуется, макрос NEED_INFO может быть неопределен или определен в 0.
Макрос NEED_TGZ должен быть определен в 1, если проверяющая программа использует специально подготовленный рабочий каталог для тестируемой программы. В секции описания задачи соответствующей задачи должна быть установлена конфигурационная переменная use_tgz. Если специально подготовленный рабочий каталог не используется, макрос NEED_TGZ может быть неопределен или определен в 0.
Таким образом, заголовок тестирующей программы может выглядеть примерно так:
#define NEED_CORR 1 #define NEED_INFO 1 #define NEED_TGZ 0 // это определение может быть опущено #include "checker.h"
Заголовочный файл checker.h включает следующие стандартные заголовочные файлы:
#include <stdio.h> #include <assert.h> #include <stdlib.h> #include <string.h> #include <stdarg.h> #include <ctype.h> #include <math.h>
Поэтому нет необходимости включать их явно в проверяющей программе.
Если включён режим NEED_TGZ, дополнительно включаются следующие заголовочные файлы:
#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <dirent.h>