سؤال

ولقد وجدت قضية مثيرة للاهتمام في ويندوز الذي يسمح لي أن تسبب على مدار الساعة ويندوز (ولكن ليس الساعات الأجهزة) لتشغيل سريع - بقدر 8 ثوان في كل دقيقة. وأنا أفعل بعض البحوث خلفية للعمل على كيفية بحساب ويندوز ويقوم بتحديث الوقت قد حان الداخلي (لا كيف أنها تتزامن مع خوادم NTP). أي شخص لديه معلومات أو أية وثائق يمكن أن نشير لي سيكون موضع تقدير كبير!

وأيضا، إذا كان أي شخص يعرف كيف يعمل _ftime واسمحوا لي أن أعرف.

هل كانت مفيدة؟

المحلول

هذه المقالة MSDN يعطي جدا وصف موجز لكيفية التعامل مع وقت النظام: "عندما يبدأ النظام لأول مرة، فإنه يحدد وقت النظام إلى قيمة تستند على مدار الساعة في الوقت الحقيقي لجهاز الكمبيوتر ومن ثم يستكمل بانتظام الوقت." وظيفة أخرى مثيرة للاهتمام هو GetSystemTimeAdjustment ، الذي لديه هذا القول:

<اقتباس فقرة>   

وقيمة true [لlpTimeAdjustmentDisabled] يشير إلى أن تعديل وقت الدوري معطل. في كل مقاطعة على مدار الساعة، ونظام مجرد يضيف الفاصلة بين الساعة المقاطعات إلى الساعة وقت من اليوم. هذا النظام هو مجانيا، ولكن لضبط لها على مدار الساعة وقت من اليوم باستخدام تقنيات أخرى. قد يسبب هذه التقنيات الأخرى مدار الساعة من اليوم للقفز بشكل ملحوظ عند إجراء التعديلات.

وأخيرا، فيما يتعلق _ftime، يبدو أن تنفذ باستخدام <لأ href = "http://msdn.microsoft.com/en-us/library/ms724397(VS.85).aspx" يختلط = "نوفولو noreferrer "> GetSystemTimeAsFileTime . لذلك سيكون التفاف مباشرة على نفس التسهيلات التي بنيت في الوقت المناسب حيث سيتم استخدامها في كل مكان آخر.

نصائح أخرى

وفيما يتعلق كيفية عمل _ftime():

إذا لديك Microsoft Visual C ++ تثبيت، ربما لديك مصدر C وقت التشغيل تثبيت كذلك. ويعرف _ftime() في %ProgramFiles%\Microsoft Visual Studio <version>\VC\crt\src\ftime.c وftime64.c.

و_ftime لا تستخدم على الإطلاق GetSystemTimeAsFileTime. مجرد قراءة شفرة المصدر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top