#c
#c
Вопрос:
Привет, у меня есть две программы a.c
и b.c
. Программа b.c
выполняется несколько раз с момента a.c
использования execve()
. Я хочу сохранять значения переменных и структур данных, определенных в b.c
, от одного выполнения к другому. Есть ли способ сделать это?
Спасибо
Ответ №1:
Вы могли бы a.c
настроить фрагмент общей памяти, а затем b.c
сохранить данные о его состоянии в этой общей памяти. Конечно, b.c
управление его состоянием должно было бы зависеть от a.c
, но это не должно быть проблемой, если b.c
существует только для вызова a.c
.
В качестве альтернативы, вы могли бы хранить все данные о состоянии в одном struct
и использовать fwrite
и fread
для хранения и извлечения состояния. Или вы могли бы использовать mmap
, чтобы упростить этот подход. Вам нужно быть осторожным, если в каком-то из ваших состояний используется указатель. Вам не обязательно использовать единую структуру для этого подхода, но это было бы проще.
Ответ №2:
b.c
загрузите и сохраните его состояние из файла и в файл.
Комментарии:
1. d подумайте об этом, но на самом деле это не очень эффективно. Спасибо.