Что определено, чтобы произойти, если SetConsolectrlhandler используется дважды с одной и той же процедурой обработчика?C++

Программы на C++. Форум разработчиков
Anonymous
Что определено, чтобы произойти, если SetConsolectrlhandler используется дважды с одной и той же процедурой обработчика?

Сообщение Anonymous »

setConsolectrlhandler берет указатель функции и логический ( Чтобы добавить еще один обработчик, false , чтобы удалить обработчик). Когда произойдет событие Ctrl+C , оно позволит зарегистрированным подпрограммам обработчика в обратном порядке (в последний раз с добавленным сдачей).
Что произойдет, если мой код настройки будет вызван во второй раз? Я думаю, что эти параметры звучат правдоподобно: < /p>
  • Обнаружено, что он уже знает этот обработчик и ничего не делает < /li>
    Это обнаруживает, что он уже знает этот обработчик, удаляет оригинальную запись, и добавляет ее снова в новую позицию (для упорядочения) < /li>
    . /> Это неопределенное поведение, и что-либо может произойти, зависит от машины, настенного покрытия и погоды < /li>
    Оно определяется как неподдерживаемое использование и приводит к прекращению процесса < /li>
    < /ul>
    Возможность не определенного поведения заставляет меня просто искать его. Есть ли документация, которая объясняет, что происходит в этом случае? < /P>
    На случай, если это важно, я использую C ++ 23. SetConsolectrlHandler (Handler, false) до того, как код настройки будет нормально, даже если не было предыдущей регистрации обработчика.


Подробнее здесь: https://stackoverflow.com/questions/797 ... the-same-h

Вернуться в «C++»