Что определено, чтобы произойти, если 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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