すべてのデータを保持する構造体を定義する必要があり、それをファイルに保存する関数を実装する必要があります。
このようなもの:構造体をファイルに保存する
ただし、この方法は最も単純ですが、移植性がまったくないことに注意してください。
コメント後に編集: 基本的に、実行したいことは、プログラムで起こっていることをすべて保存し、ロード後に再起動することです。これは簡単な方法では不可能だと思います。「アプリケーションのステータス」が何を意味するかを理解する必要があります。考えてみてください。メモリのダンプを実行すると、データだけでなく、現在の命令ポインターも保存されます。したがって、その「ダム」ダンプを使用すると、現在実行中の実際の命令も保存されます。そして、あなたが本当に気にしたくない多くの合併症。
あなたが考えている最も近いことは、仮想マシンでプログラムを実行することです。VM を一時停止すると、実行ステータスは「保存済み」になりますが、VM を再起動するたびに、プログラムは一時停止したのとまったく同じ実行ポイントから再起動します。
構成がアプリケーション全体に分散している場合でも、すべてを保存するために使用されるグローバル構造体にアクセスできます。それでも、プログラムを理解し、何を保存する必要があるかを特定する必要があります。その上に近道はありません。