私のクラスは次のようになります。
AppStart{
static void SignalHandler(int signal){
std::cout<< log_file_;
}
static void Start(){
//Set log_file_ path
//Register signal handler
}
static string log_file_;
}
コマンドを使用してシグナルを送信することによって初めて SignalHandler が呼び出されるとkill
、正しい値が出力されます。しかし、複数回呼び出されると、未定義の動作が発生します。プログラムの実行が終了する前に静的変数が破棄されるのはなぜですか?