Вы можете узнать количество оставшихся секунд, вызвав сигнал тревоги (0) и посмотрев на возвращаемое значение.Это не соответствует вашему требованию не изменять текущее значение, потому что вызов alarm (0) отменяет любой ожидающий сигнал тревоги.Вы можете снова вызвать тревогу, передав оставшееся количество секунд, которое вы только что прочитали, и это сбросит тревогу.Проблема в том, что он не очень точен и точно не имитирует поведение исходного аварийного вызова, потому что разрешение по времени составляет всего одну секунду.Если вы это сделаете, ваше время может быть почти на целую секунду, но, возможно, это нормально.
Судя по вашему вопросу, вы, возможно, уже думали обо всех этих проблемах и читали этого человека.страницы так же, как у меня.Я до сих пор не нашел точного ответа на ваш вопрос, но я хотел предложить свой неточный ответ на тот случай, если вам этого достаточно.