adjtime(3)

الاسم
adjtime - تصحيح الوقت لمزامنة ساعة النظام

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

موجز
#include <sys/time.h>

int adjtime(const struct timeval *delta, struct timeval *olddelta);

    متطلبات ماكروات اختبار الميزات لـ glibc (انظر feature_test_macros(7)):

adjtime():
    منذ glibc 2.19:
        _DEFAULT_SOURCE
    glibc 2.19 وما قبله:
        _BSD_SOURCE

الوصف
تضبط دالة adjtime() ساعة النظام تدريجياً (كما تُرجعها gettimeofday(2)). يُحدد مقدار الوقت الذي ستُضبط به الساعة في البنية المشار إليها بواسطة delta. لهذه البنية الشكل التالي:

    struct timeval {
        time_t      tv_sec;     /* ثوانٍ */
        suseconds_t tv_usec;    /* ميكرو ثانية */
    };

إذا كان الضبط في delta موجباً، تُسرع ساعة النظام بنسبة مئوية صغيرة (أي بإضافة مقدار صغير من الوقت إلى قيمة الساعة في كل ثانية) حتى يُكمل الضبط. إذا كان الضبط في delta سالباً، تُبطأ الساعة بطريقة مماثلة.

إذا كان ضبط ساعة من استدعاء سابق لـ adjtime() قيد التنفيذ وقت استدعاء لاحق لـ adjtime()، وكان delta غير NULL للاستدعاء اللاحق، يُوقف الضبط السابق، لكن لا يُلغى أي جزء مُكمل بالفعل من ذلك الضبط.

إذا كان olddelta غير NULL، يُستخدم المخزن المؤقت الذي يشير إليه لإرجاع مقدار الوقت المتبقي من أي ضبط سابق لم يُكمل بعد.

قيمة الإرجاع
عند النجاح، تُرجع adjtime() 0. عند الفشل، تُرجع -1، ويُضبط errno للإشارة إلى الخطأ.

الأخطاء

EINVAL
    الضبط في delta خارج النطاق المسموح به.

EPERM
    لا يملك المستدعي صلاحية كافية لضبط الوقت. تحت لينكس، تُطلب القدرة CAP_SYS_TIME.

السمات
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
الواجهة | السمة | القيمة
adjtime() | سلامة الخيوط | MT-Safe

المعايير
لا شيء.

التاريخ
4.3BSD، System V.

ملاحظات
يُنفذ الضبط الذي تجريه adjtime() على الساعة بطريقة تجعل الساعة متزايدة رتيباً دائماً. يمنع استخدام adjtime() لضبط الوقت المشكلات التي قد تُسببها القفزات المفاجئة الموجبة أو السالبة في وقت النظام لبعض التطبيقات (مثل make(1)).

تُستخدم adjtime() لإجراء ضبط صغير لوقت النظام. تفرض معظم الأنظمة حداً على الضبط الذي يمكن تحديده في delta. في تطبيق glibc، يجب أن يكون delta أقل من أو يساوي (INT_MAX / 1000000 - 2) وأكبر من أو يساوي (INT_MIN / 1000000 + 2) (2145 و -2145 ثانية على i386 على التوالي).

العلل
عنى عُطل طويل الأمد أنه إذا حُدد delta كـ NULL، لم تُرجع معلومات صالحة عن ضبط الساعة المعلق في olddelta. (في هذه الحالة، يجب أن تُرجع adjtime() ضبط الساعة المعلق، دون تغييره.) يُصلح هذا العُطل على الأنظمة التي تحتوي على glibc 2.8 أو أحدث ونواة لينكس 2.6.26 أو أحدث.

انظر أيضًا
adjtimex(2), gettimeofday(2), time(7)

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

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

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