Подгрузка сгенерированного кода
Здравствуйте!
Хотелось бы научиться исполнять код, который может быть написан самой программой.
Например, в программе есть функция
void gen_code (FILE *f)
{
fprintf (f, "void print_hello (int i) { printf (\"Hello %d.\\n\", i); }");
}
Допустим, у меня есть возможность вызывать компилятор, линкер и пр. (система GNU/Linux).
Внимание, вопрос:
Какие действия нужно сделать, чтобы в процессе исполнения программы она сгенерила код функцией gen_code, скомпилировала, подгрузила как-то, а потом вызвала
print_hello (111);
и в консоль вывелось бы
Hello 111
?
Возможно ли это в принципе?
Заранее спасибо.
Хотелось бы научиться исполнять код, который может быть написан самой программой.
Например, в программе есть функция
void gen_code (FILE *f)
{
fprintf (f, "void print_hello (int i) { printf (\"Hello %d.\\n\", i); }");
}
Допустим, у меня есть возможность вызывать компилятор, линкер и пр. (система GNU/Linux).
Внимание, вопрос:
Какие действия нужно сделать, чтобы в процессе исполнения программы она сгенерила код функцией gen_code, скомпилировала, подгрузила как-то, а потом вызвала
print_hello (111);
и в консоль вывелось бы
Hello 111
?
Возможно ли это в принципе?
Заранее спасибо.
