Я меняю код программы C и вставляю #include stdio в программу для открытия/закрытия файла. Я использую команду "make" для компиляции кода C в xen. Но я встречаюсь с ошибкой:
../../../include/stdio.h:28:23 fatal error: features.h: No such file or directory
Я вставляю команду "make" -I Но снова повторяю ошибку!
Как компилировать код C xen в linux.
он показывает, что общая часть кода была изменена на добавленную мной и вызвала ошибку, потому что ранее этот код не был ошибкой, но я действительно не понимаю, почему я не могу добавить #include stdio.h в код для функции чтения fputc и...?!
#include <stdio.h> // i add
#include <xen/config.h>
#include <xen/init.h>
#include <xen/lib.h>
#include <xen/sched.h>
#include <xen/domain.h>
#include <xen/delay.h>
#include <xen/event.h>
#include <xen/time.h>
#include <xen/perfc.h>
#include <xen/sched-if.h>
#include <xen/softirq.h>
#include <asm/atomic.h>
#include <xen/errno.h>
#include <xen/keyhandler.h>
struct csched_dom *sdom;
xc_shadow_op_stats_t stats;
FILE *out;
if(iter>=2) {
out = fopen("/test.dat", "w");
fputc(sdom->weight , out);
fclose(out);
}
else
{
sdom->weight = CSCHED_DEFAULT_WEIGHT;
out = fopen("/test.txt", "w");
fputc(sdom->weight , out);
fclose(out);
}
stdio
недоступен в среде, в которой работает гипервизор Xen. Он вообще не имеет дело с файлами - они просто не существуют на уровне, на котором он работает.
Вы можете использовать printk()
для отображения сообщений на консоли Xen. Однако, если это новость для вас, вы, вероятно, находитесь над вашей головой - вам может быть легче работать с чем-то другим. (Пожалуй, сначала попробуйте работать с ядром Linux).