プログラム終了後も持続する変数が欲しいのですが。つまり、アプリケーションがmain関数を終了した後も、変数をメモリに残しておく必要があります。したがって、アプリケーションを再度起動すると、メモリからその変数に直接アクセスできます。これも可能ですか?動的割り当て、たとえばarray=new int[size]
、トリックを実行しますか?
2995 次
3 に答える
3
いいえ、すべてのメモリはプロセスの終了時にOSによって再利用されます。必要なものをファイルに保存する必要があります。
于 2012-07-27T13:45:18.623 に答える
3
不可能です。次回の起動時にデータにアクセスするには、データをファイルまたはシステム環境設定に保存する必要があります
于 2012-07-27T13:45:58.220 に答える
2
免責事項: ファイルに値を保存するか、QSettingsなどのフレームワーク機能を使用することは、次のアプローチよりも優先されます。
変数をメモリに残したい場合や、再起動時に値が失われるリスクがある場合は、オペレーティングシステムに共有メモリを要求してください。
LinuxやWindowsなどのPOSIX準拠のプラットフォームを使用している場合は、POSIX関数を使用してください。マニュアルを引用するには:
POSIX共有メモリオブジェクトにはカーネルの永続性があります。共有メモリオブジェクトは、システムがシャットダウンされるまで、またはすべてのプロセスがオブジェクトのマッピングを解除して、で削除されるまで存在します
shm_unlink
。
これにより、一種のメモリリークが発生することに注意してください。アプリケーションの終了後も、変数はメモリを消費します。
于 2012-07-27T14:20:16.773 に答える