Есть ли в C ++ функция, которая может получать метки времени, которые нельзя изменить?(Интернет независимый) - PullRequest
0 голосов
/ 08 июля 2019

Я ищу функцию, которую можно реализовать в отдельном приложении C ++ для сбора временных меток с компьютера пользователя, которые они не могут изменить, изменив системное время. Цель состоит в том, чтобы обеспечить годовую подписку.

Приложение должно быть способно функционировать на международном уровне (т.е. без стандартизированного часового пояса) и на кроссплатформенности (например, Windows, IOS, Android и т. Д.), И единственная проблема, возникающая здесь, заключается в необходимости этой функции независимо от того, когда пользователь подключается к интернету после загрузки приложения.

Предпочтение отдается функциональности в стандартных библиотеках C ++. Кто-нибудь знает, возможно ли это только в C ++, или есть функции в библиотеках Windows, IOS, Android и т. Д., Которые предоставляют это?

Пользователи моей программы высоко образованы, и их системное время / отключение их системы, когда приложение не используется для продления жизни этого приложения, находится в их руках.

Спасибо

1 Ответ

4 голосов
/ 08 июля 2019

Нет такой возможности ни в библиотеке C ++, ни в какой-либо другой библиотеке, о которой я знаю.Вы на самом деле не можете делать полностью то, что вы хотите: если пользователь выключает свой компьютер и отсоединяет батарею от часов реального времени, не может определить, отключили ли они питание на пять минут.или десять лет.

Ближайшее, о чем я могу подумать, - это «монотонные часы» Posix.Это, по крайней мере, гарантирует, что он никогда не вернет более раннее время, чем было ранее (по крайней мере, без промежуточной загрузки), - но ничто не остановит пользователя, запускающего ваше приложение на виртуальной машине, и остановит часы, когда они выключатприложение, и только перезапустить его, когда они запускаются снова.(Это означает, что они реально используют ваше приложение в течение 24 * 365 часов - что, вероятно, будет распространяться в течение многих лет.)

На самом деле, если вы не можете подключиться к внешнему источнику правды, ничего не происходитчтобы пользователь не смог перевести виртуальную машину в состояние, в котором он находился, когда он только что установил приложение.

Вы должны будете сказать своему менеджеру, что это невозможно.

...