1 つの関数が 2 つの異なるファイルから呼び出されてデータをロードします。場合によっては、1 つのファイルからロードされ、別のファイルからロードされます。ただし、まれに両方のファイルから呼び出されることがありますが、これは避けるべきです。
グローバル変数を取得するか、関数を使用して、データの読み込みが 1 回だけ行われるようにすることができます。
よりエレガントなソリューションを探しています。
Linuxはこれを達成するためのAPIを提供していますか?
ありがとう
1 つの関数が 2 つの異なるファイルから呼び出されてデータをロードします。場合によっては、1 つのファイルからロードされ、別のファイルからロードされます。ただし、まれに両方のファイルから呼び出されることがありますが、これは避けるべきです。
グローバル変数を取得するか、関数を使用して、データの読み込みが 1 回だけ行われるようにすることができます。
よりエレガントなソリューションを探しています。
Linuxはこれを達成するためのAPIを提供していますか?
ありがとう
複数のスレッドについて話している場合は、関数が既に実行されているかどうかを示す静的変数の周りに、ある種のミューテックスが必要です。
スレッドが 1 つしかない場合は、ミューテックスは必要ありません。
マルチスレッドの場合は、この回答で提案されているように静的変数の周りにミューテックスを使用するか、 pthread_onceを使用して ください。