1

組み込みアプリケーションがあり、その状態を保存して再ロードする必要があります。PC ゲームのように、外に出て新鮮な空気を吸わなければならない前に保存します。この製品は本質的に静かに進化しており、適切な設計がないため、保存するデータを特定することはできません。

ソフトウェアはC言語であるため、すべてのデータには固定アドレス(.dataセグメント)があり、決定論的であり、動的メモリ割り当てはありません。理論的には、このデータ セグメントをファイルにバックアップし、アプリケーションの再起動時にファイルから更新します。このアプローチは、おそらく必要以上に多くのデータを節約しますが、私はそれで問題ありません。

短い実行時間でこれを行うにはどうすればよいですか?
また、実行時に .data セグメントの開始と終了を特定するにはどうすればよいですか?

4

1 に答える 1

2

アプリケーションのチェックポイントが必要な場合は、おそらくBerkley Lab Checkpoint Restartライブラリが役立つかもしれません。

すべてのデータのアドレスが固定されていることが確実な場合は、おそらくmmap(2)システム コールを使用できます。

現在のメモリ セグメントとマッピングについて知るには、(アプリケーションから)/proc/self/maps ファイルを読み取ります。などもあります。 proc(5)/proc/self/smapsについて詳しく学んでください。/proc/

于 2012-04-04T20:06:12.340 に答える