Я пишу REPL (read-execute-print-loop) для C. Я стараюсь поддерживать заголовочный файл, чтобы я мог определять новые функции на основе предыдущих функций. Всякий раз, когда я определяю новую функцию, я получаю новый временный файл, подобный этому:
#include "/tmp/header.h"
int foo() {
return func() * func();
}
А /tmp/header.h
это как:
int func();
int foo();
, где func()
- ранее определенная функция.
Так что мне нужно снова и снова звонить write()
на header_fileno
. Меня беспокоит то, возможно ли, что после того, как я позвонил write(header_fileno, buf, wrsize)
, содержимое buf
будет сохранено в некотором буфере ядра вместо записи в фактический файл ? Потому что, если это произойдет, я не могу рассчитывать на заголовок, чтобы дать последние объявления. У меня такая же проблема, когда дело доходит до исходного файла. И если это произойдет, есть ли способ сделать его немедленно эффективным?