time(2)

الاسم
time - الحصول على الوقت بالثواني

المكتبة
مكتبة سي المعيارية (libc، -lc)

موجز
#include <time.h>

time_t time(time_t *_Nullable tloc);

الوصف
تُرجع time() الوقت كعدد الثواني منذ الحقبة (Epoch)، 1970-01-01 00:00:00 +0000 (UTC).

إذا كان tloc غير NULL، تُخزَّن القيمة المُرجعة أيضًا في الذاكرة المُشار إليها بواسطة tloc.

قيمة الإرجاع
عند النجاح، تُرجع قيمة الوقت بالثواني منذ الحقبة. عند الخطأ، تُرجع ((time_t) -1)، ويُعيَّن errno للإشارة إلى الخطأ.

الأخطاء

EOVERFLOW
    لا يمكن تمثيل الوقت كقيمة time_t. قد يحدث هذا إذا شُغِّل ملف تنفيذي ذو time_t 32-بت على نواة 64-بت عندما يكون الوقت 2038-01-19 03:14:08 UTC أو لاحقًا. ومع ذلك، عندما يكون وقت النظام خارج نطاق time_t في حالات أخرى، يكون السلوك غير مُحدَّد.

EFAULT
    يشير tloc إلى خارج مساحة العناوين القابلة للوصول (لكن انظر الأخطاء).

    على الأنظمة حيث تستدعي دالة الغلاف time() في مكتبة C تطبيقًا مُقدمًا من vdso(7) (بحيث لا يوجد فخ إلى النواة)، قد يُؤدي عنوان غير صالح بدلاً من ذلك إلى إشارة SIGSEGV.

الإصدارات
يُعرِّف POSIX.1 الثواني منذ الحقبة باستخدام صيغة تُقرِّب عدد الثواني بين وقت مُحدَّد والحقبة. تأخذ هذه الصيغة في الاعتبار أن جميع السنوات القابلة للقسمة على 4 هي سنوات كبيسة، لكن السنوات القابلة للقسمة على 100 ليست سنوات كبيسة إلا إذا كانت أيضًا قابلة للقسمة على 400، وفي هذه الحالة تكون سنوات كبيسة. هذه القيمة ليست نفس العدد الفعلي للثواني بين الوقت والحقبة، بسبب الثواني الكبيسة ولأن الساعات النظامية ليست مطلوبة لتكون متزامنة مع مرجع قياسي. تتبع أنظمة Linux عادةً متطلب POSIX بأن تتجاهل هذه القيمة الثواني الكبيسة، بحيث تُفسرها الأنظمة المتوافقة بشكل متسق؛ انظر POSIX.1-2018 Rationale A.4.16.

يجب على التطبيقات المُعدة للتشغيل بعد 2038 استخدام واجهات ثنائية التطبيق (ABIs) مع time_t أعرض من 32 بت؛ انظر time_t(3type).

  الاختلافات بين مكتبة C والنواة
على بعض البنى، يُقدم تطبيق لـ time() في vdso(7).

المعايير
C11، ‏POSIX.1-2024.

التاريخ
SVr4, 4.3BSD, C89, POSIX.1-2001, V7.

العلل
لا يمكن تمييز إرجاعات الخطأ من استدعاء النظام هذا عن التقارير الناجحة بأن الوقت قبل الحقبة ببضع ثوانٍ، لذا لا تُعيِّن دالة الغلاف في مكتبة C errno أبدًا نتيجة لهذا الاستدعاء.

الوسيط tloc قديم ويجب أن يكون دائمًا NULL في الكود الجديد. عندما يكون tloc NULL، لا يمكن أن يفشل الاستدعاء.

انظر أيضًا
date(1), gettimeofday(2), ctime(3), ftime(3), time(7), vdso(7)

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.