إنشاء وظيفة مؤقت في برمجة C

في برمجة C، تعد وظيفة المؤقت أداة مفيدة لتنفيذ مهمة محددة بعد مرور فترة زمنية معينة. يمكن أن يكون هذا مفيدًا بشكل خاص في السيناريوهات التي تحتاج فيها إلى تأخير تنفيذ وظيفة ما أو تنفيذ مهمة على فترات زمنية منتظمة. في هذه المقالة، سنستكشف كيفية إنشاء دالة مؤقت في برمجة C.

إحدى الطرق الشائعة لتنفيذ دالة مؤقت في لغة C هي استخدام ملف الرأس `time.h`، الذي يوفر وظائف للعمل مع قيم الوقت. على سبيل المثال، تقوم الدالة `time()` بإرجاع وقت التقويم الحالي ككائن `time_t`، والذي يمثل عدد الثواني منذ عصر Unix. بمقارنة هذه القيمة بوقت مستهدف، يمكننا تحديد متى انقضت فترة زمنية معينة.

لإنشاء دالة مؤقت، يمكننا تحديد دالة تأخذ فاصل زمني كمعلمة وتستخدم `time()` وظيفة لحساب الوقت الحالي. يمكننا بعد ذلك مقارنة هذا الوقت بوقت بدء المؤقت والتحقق من مرور الفاصل الزمني المحدد. إذا كان الأمر كذلك، فيمكننا تنفيذ المهمة المطلوبة.

هذا مثال لوظيفة مؤقت بسيطة في C:

“`c

#تشمل

#include

مؤقت باطلة (عدد الثواني) {

time_t start_time = time(NULL);

time_t current_time;

افعل {

current_time = الوقت(NULL);

} بينما ((الوقت_الحالي – وقت_البدء) < seconds); printf(“Timer expired! “); } int main() { المؤقت(5); // ضبط الموقت على 5 ثواني العودة 0؛ } “` في هذا المثال، تأخذ الدالة `timer()` معاملًا صحيحًا يمثل عدد الثواني التي يجب انتظارها قبل تنفيذ المهمة. يقوم بحساب وقت البدء باستخدام الدالة `time()` ثم يدخل في حلقة تتحقق بشكل مستمر من الوقت الحالي حتى مرور الفاصل الزمني المحدد. بمجرد انتهاء صلاحية المؤقت، فإنه يطبع رسالة تشير إلى انتهاء صلاحية المؤقت. من المهم ملاحظة أن تنفيذ وظيفة المؤقت هذا بسيط وقد لا يكون مناسبًا لجميع السيناريوهات. للحصول على توقيت أكثر دقة أو متطلبات أكثر تعقيدًا، قد تحتاج إلى التفكير في استخدام تقنيات أو مكتبات أخرى توفر وظائف أكثر تقدمًا. هناك طريقة أخرى لإنشاء وظيفة مؤقت في لغة C وهي استخدام ملف الرأس `signal.h`، والذي يسمح يمكنك إعداد معالجات الإشارة التي يمكن تشغيلها على فترات زمنية محددة. من خلال تسجيل معالج الإشارة لإشارة `SIGALRM`، يمكنك جدولة المنبه لينطلق بعد مرور فترة زمنية معينة. فيما يلي مثال لوظيفة مؤقت تستخدم الإشارات في لغة C: [video src="http://shchimay.com/wp-content/uploads/2023/11/ASDU.mp4" /]“`ج #تشمل #تشمل #include void timer_handler(int signal) { printf(“انتهت صلاحية المؤقت! “); } مؤقت الفراغ(عدد الثواني) { signal(SIGALRM, timer_handler); إنذار (ثواني)؛ وقفة ()؛ } int main() { المؤقت(5); // ضبط الموقت على 5 ثواني العودة 0؛ } “` في هذا المثال، يتم استدعاء الدالة `timer_handler()` عند استقبال إشارة `SIGALRM`، للإشارة إلى انتهاء صلاحية المؤقت. تقوم وظيفة `timer()` بتسجيل معالج الإشارة، وضبط المنبه لعدد محدد من الثواني، ثم إيقاف البرنامج مؤقتًا حتى يتم استلام الإشارة.

سرير ثابت GR كبير
نموذج GR15 الجانب/العلوي GR20 الجانب/العلوي GR40 الجانب/العلوي GR50
الإخراج الأقصى 18 طن/ساعة 25 طن/ساعة 48 طن/ساعة 70 طن/ساعة

يمكن أن يكون إنشاء وظيفة مؤقت في برمجة C مهارة قيمة لإدارة المهام الحساسة للوقت أو تنفيذ التأخير في برامجك. باستخدام ملفات الرأس `time.h` أو `signal.h`، يمكنك تنفيذ وظائف المؤقت التي تلبي متطلباتك المحددة وتحسن كفاءة التعليمات البرمجية الخاصة بك.