Сохранение значений переменных от одного выполнения к другому

#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 подумайте об этом, но на самом деле это не очень эффективно. Спасибо.