.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1995, Michael Chastain .\" Copyright 2014-2016, Michael Kerrisk .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: GPL-2.0-or-later .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH adjtimex 2 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم adjtimex, clock_adjtime, ntp_adjtime \- ضبط ساعة النواة .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP .P \fBint adjtimex(struct timex *\fP\fIbuf\fP\fB);\fP .P \fBint clock_adjtime(clockid_t \fP\fIclk_id,\fP\fB struct timex *\fP\fIbuf\fP\fB);\fP .P \fBint ntp_adjtime(struct timex *\fP\fIbuf\fP\fB);\fP .fi .SH الوصف يستخدم لينكس خوارزمية ضبط الساعة لديفيد إل. ميلز (انظر RFC\ 5905). يقرأ استدعاء النظام \fBadjtimex\fP() معلمات الضبط لهذه الخوارزمية ويضبطها اختيارياً. يأخذ مؤشراً لبنية \fItimex\fP، ويُحدّث معلمات النواة من قيم الحقول (المحددة)، ويعيد نفس البنية مُحدّثة بقيم النواة الحالية. تُصرّح هذه البنية كما يلي: .P .in +4n .EX struct timex { int modes; /* Mode selector */ long offset; /* Time offset; nanoseconds, if STA_NANO status flag is set, otherwise microseconds */ long freq; /* Frequency offset; see NOTES for units */ long maxerror; /* Maximum error (microseconds) */ long esterror; /* Estimated error (microseconds) */ int status; /* Clock command/status */ long constant; /* PLL (phase\-locked loop) time constant */ long precision; /* Clock precision (microseconds, read\-only) */ long tolerance; /* Clock frequency tolerance (read\-only); see NOTES for units */ struct timeval time; /* Current time (read\-only, except for ADJ_SETOFFSET); upon return, time.tv_usec contains nanoseconds, if STA_NANO status flag is set, otherwise microseconds */ long tick; /* Microseconds between clock ticks */ long ppsfreq; /* PPS (pulse per second) frequency (read\-only); see NOTES for units */ long jitter; /* PPS jitter (read\-only); nanoseconds, if STA_NANO status flag is set, otherwise microseconds */ int shift; /* PPS interval duration (seconds, read\-only) */ long stabil; /* PPS stability (read\-only); see NOTES for units */ long jitcnt; /* PPS count of jitter limit exceeded events (read\-only) */ long calcnt; /* PPS count of calibration intervals (read\-only) */ long errcnt; /* PPS count of calibration errors (read\-only) */ long stbcnt; /* PPS count of stability limit exceeded events (read\-only) */ int tai; /* TAI offset, as set by previous ADJ_TAI operation (seconds, read\-only, since Linux 2.6.26) */ /* Further padding bytes to allow for future expansion */ }; .EE .in .P يحدد حقل \fImodes\fP أي المعلمات، إن وجدت، سيتم ضبطها. (كما هو موصوف لاحقًا في هذه الصفحة، الثوابت المستخدمة لـ \fBntp_adjtime\fP() متكافئة ولكن بأسماء مختلفة.) إنه قناع بت يحتوي على تركيبة OR بتية لواحد أو أكثر من البتات التالية: .TP \fBADJ_OFFSET\fP .\" commit 074b3b87941c99bc0ce35385b5817924b1ed0c23 ضبط إزاحة الوقت من \fIbuf.offset\fP. منذ لينكس 2.6.26، تُقيد القيمة المُقدمة إلى النطاق (\-0.5s, +0.5s). في النوى الأقدم، يحدث خطأ \fBEINVAL\fP إذا كانت القيمة المُقدمة خارج النطاق. .TP \fBADJ_FREQUENCY\fP .\" commit 074b3b87941c99bc0ce35385b5817924b1ed0c23 ضبط إزاحة التردد من \fIbuf.freq\fP. منذ لينكس 2.6.26، تُقيد القيمة المُقدمة إلى النطاق (\-32768000, +32768000). في النوى الأقدم، يحدث خطأ \fBEINVAL\fP إذا كانت القيمة المُقدمة خارج النطاق. .TP \fBADJ_MAXERROR\fP ضبط الخطأ الزمني الأقصى من \fIbuf.maxerror\fP. .TP \fBADJ_ESTERROR\fP ضبط الخطأ الزمني المقدر من \fIbuf.esterror\fP. .TP \fBADJ_STATUS\fP ضبط بتات حالة الساعة من \fIbuf.status\fP. وصف هذه البتات مُقدم أدناه. .TP \fBADJ_TIMECONST\fP ضبط ثابت وقت PLL من \fIbuf.constant\fP. إذا كانت علامة الحالة \fBSTA_NANO\fP (انظر أدناه) غير مضبوطة، تضيف النواة 4 إلى هذه القيمة. .TP \fBADJ_SETOFFSET\fP (منذ لينكس 2.6.39) .\" commit 094aa1881fdc1b8889b442eb3511b31f3ec2b762 .\" Author: Richard Cochran إضافة \fIbuf.time\fP إلى الوقت الحالي. إذا تضمن \fIbuf.status\fP العلم \fBADJ_NANO\fP، فإن \fIbuf.time.tv_usec\fP يُفسر كقيمة نانوثانية؛ وإلا يُفسر كميكروثانية. .IP قيمة \fIbuf.time\fP هي مجموع حقليها، لكن الحقل \fIbuf.time.tv_usec\fP يجب أن يكون دائماً غير سالب. يوضح المثال التالي كيفية تسوية \fItimeval\fP بدقة نانوثانية. .IP .in +4n .EX while (buf.time.tv_usec < 0) { buf.time.tv_sec \-= 1; buf.time.tv_usec += 1000000000; } .EE .in .TP \fBADJ_MICRO\fP (منذ لينكس 2.6.26) .\" commit eea83d896e318bda54be2d2770d2c5d6668d11db .\" Author: Roman Zippel اختيار دقة ميكروثانية. .TP \fBADJ_NANO\fP (منذ لينكس 2.6.26) .\" commit eea83d896e318bda54be2d2770d2c5d6668d11db .\" Author: Roman Zippel اختيار دقة نانوثانية. يجب تحديد واحد فقط من \fBADJ_MICRO\fP و \fBADJ_NANO\fP. .TP \fBADJ_TAI\fP (منذ لينكس 2.6.26) .\" commit 153b5d054ac2d98ea0d86504884326b6777f683d ضبط إزاحة TAI (الوقت الذري الدولي) من \fIbuf.constant\fP. .IP لا ينبغي استخدام \fBADJ_TAI\fP مع \fBADJ_TIMECONST\fP، لأن الوضع الأخير يستخدم أيضًا حقل \fIbuf.constant\fP. .IP للحصول على شرح كامل لـ TAI والفرق بين TAI وUTC، انظر .UR http:\://www.bipm.org/en/bipm/tai/tai.html \fIBIPM\fP .UE .TP \fBADJ_TICK\fP ضبط قيمة النبضة من \fIbuf.tick\fP. .P .\" In general, the other bits are ignored, but ADJ_OFFSET_SINGLESHOT 0x8001 .\" ORed with ADJ_NANO (0x2000) gives 0xa0001 == ADJ_OFFSET_SS_READ!! بدلاً من ذلك، يمكن تحديد \fImodes\fP كأي من القيم التالية (قناع متعدد البتات)، وفي هذه الحالة لا ينبغي تحديد البتات الأخرى في \fImodes\fP: .TP \fBADJ_OFFSET_SINGLESHOT\fP .\" In user space, ADJ_OFFSET_SINGLESHOT is 0x8001 .\" In kernel space it is 0x0001, and must be ANDed with ADJ_ADJTIME (0x8000) \fBadjtime\fP(3) بالطريقة القديمة: ضبط الوقت (تدريجيًا) بالقيمة المحددة في \fIbuf.offset\fP، والتي تحدد تعديلاً بالميكروثانية. .TP \fBADJ_OFFSET_SS_READ\fP (وظيفي منذ Linux 2.6.28) .\" In user space, ADJ_OFFSET_SS_READ is 0xa001 .\" In kernel space there is ADJ_OFFSET_READONLY (0x2000) anded with .\" ADJ_ADJTIME (0x8000) and ADJ_OFFSET_SINGLESHOT (0x0001) to give 0xa001) .\" commit 52bfb36050c8529d9031d2c2513b281a360922ec .\" commit 916c7a855174e3b53d182b97a26b2e27a29726a1 إرجاع (في \fIbuf.offset\fP) المقدار المتبقي من الوقت الذي سيتم تعديله بعد عملية \fBADJ_OFFSET_SINGLESHOT\fP سابقة. أُضيفت هذه الميزة في Linux 2.6.24، لكنها لم تعمل بشكل صحيح حتى Linux 2.6.28. .P يُقيد المستخدمون العاديون بقيمة 0 أو \fBADJ_OFFSET_SS_READ\fP لـ \fImodes\fP. فقط المستخدم المتمكن يمكنه ضبط أي معلمات. .P حقل \fIbuf.status\fP هو قناع بت يُستخدم لضبط و/أو استرداد بتات الحالة المرتبطة بتنفيذ NTP. بعض البتات في القناع قابلة للقراءة والضبط، بينما البعض الآخر للقراءة فقط. .TP \fBSTA_PLL\fP (قراءة\-كتابة) تمكين تحديثات حلقة قفل الطور (PLL) عبر \fBADJ_OFFSET\fP. .TP \fBSTA_PPSFREQ\fP (قراءة\-كتابة) تمكين ضبط التردد لنبضة في الثانية (PPS). .TP \fBSTA_PPSTIME\fP (قراءة\-كتابة) تمكين ضبط الوقت لنبضة في الثانية (PPS). .TP \fBSTA_FLL\fP (قراءة\-كتابة) اختيار وضع حلقة قفل التردد (FLL). .TP \fBSTA_INS\fP (قراءة\-كتابة) .\" John Stultz; .\" Usually this is written as extending the day by one second, .\" which is represented as: .\" 23:59:59 .\" 23:59:60 .\" 00:00:00 .\" .\" But since posix cannot represent 23:59:60, we repeat the last second: .\" 23:59:59 + TIME_INS .\" 23:59:59 + TIME_OOP .\" 00:00:00 + TIME_WAIT .\" إدراج ثانية كبيسة بعد الثانية الأخيرة من يوم UTC، وبالتالي تمديد الدقيقة الأخيرة من اليوم بثانية واحدة. سيحدث إدراج الثانية الكبيسة كل يوم، طالما بقيت هذه العلامة مضبوطة. .TP \fBSTA_DEL\fP (قراءة\-كتابة) .\" John Stultz: .\" Similarly the progression here is: .\" 23:59:57 + TIME_DEL .\" 23:59:58 + TIME_DEL .\" 00:00:00 + TIME_WAIT .\" FIXME Does there need to be a statement that it is nonsensical to set .\" to set both STA_INS and STA_DEL? حذف ثانية كبيسة عند الثانية الأخيرة من يوم UTC. سيحدث حذف الثانية الكبيسة كل يوم، طالما بقيت هذه العلامة مضبوطة. .TP \fBSTA_UNSYNC\fP (قراءة\-كتابة) الساعة غير متزامنة. .TP \fBSTA_FREQHOLD\fP (قراءة\-كتابة) .\" Following text from John Stultz: تثبيت التردد. عادةً، تؤدي التعديلات التي تتم عبر \fBADJ_OFFSET\fP إلى إجراء تعديلات تردد مخففة أيضًا. لذا، تصحح استدعاء واحد الإزاحة الحالية، ولكن مع تكرار الإزاحات في نفس الاتجاه، ستتراكم تعديلات التردد الصغيرة لإصلاح الانحراف طويل المدى. .IP .\" According to the Kernel Application Program Interface document, .\" STA_FREQHOLD is not used by the NTP version 4 daemon تمنع هذه العلامة إجراء تعديل التردد الصغير عند التصحيح لقيمة \fBADJ_OFFSET\fP. .TP \fBSTA_PPSSIGNAL\fP (للقراءة فقط) توجد إشارة نبضة في الثانية (PPS) صالحة. .TP \fBSTA_PPSJITTER\fP (للقراءة فقط) تم تجاوز ارتعاش إشارة PPS. .TP \fBSTA_PPSWANDER\fP (للقراءة فقط) تم تجاوز انحراف إشارة PPS. .TP \fBSTA_PPSERROR\fP (للقراءة فقط) خطأ في معايرة إشارة PPS. .TP \fBSTA_CLOCKERR\fP (للقراءة فقط) .\" Not set in current kernel (4.5), but checked in a few places عطل في عتاد الساعة. .TP \fBSTA_NANO\fP (للقراءة فقط؛ منذ لينكس 2.6.26) .\" commit eea83d896e318bda54be2d2770d2c5d6668d11db .\" Author: Roman Zippel الدقة (0 = ميكروثانية، 1 = نانوثانية). تُضبط عبر \fBADJ_NANO\fP، وتُمسح عبر \fBADJ_MICRO\fP. .TP \fBSTA_MODE\fP (منذ لينكس 2.6.26) .\" commit eea83d896e318bda54be2d2770d2c5d6668d11db .\" Author: Roman Zippel الوضع (0 = حلقة مقفلة الطور، 1 = حلقة مقفلة التردد). .TP \fBSTA_CLK\fP (للقراءة فقط؛ منذ لينكس 2.6.26) .\" commit eea83d896e318bda54be2d2770d2c5d6668d11db .\" Author: Roman Zippel مصدر الساعة (0 = A، 1 = B)؛ غير مستخدم حالياً. .P .\" محاولات ضبط بتات \fIstatus\fP للقراءة فقط تُتجاهل بصمت. .SS "clock_adjtime ()" استدعاء النظام \fBclock_adjtime\fP() (المُضاف في لينكس 2.6.39) يتصرف مثل \fBadjtimex\fP() لكنه يأخذ وسيطة إضافية \fIclk_id\fP لتحديد الساعة المحددة التي سيعمل عليها. .SS "ntp_adjtime ()" دالة المكتبة \fBntp_adjtime\fP() (الموصوفة في "واجهة برمجة تطبيقات النواة" لـ NTP، KAPI) هي واجهة أكثر قابلية للنقل لأداء نفس مهمة \fBadjtimex\fP(). باستثناء النقاط التالية، فهي مطابقة لـ \fBadjtimex\fP(): .IP \[bu] 3 الثوابت المستخدمة في \fImodes\fP مسبوقة بـ "MOD_" بدلاً من "ADJ_"، ولها نفس اللواحق (وبالتالي، \fBMOD_OFFSET\fP، \fBMOD_FREQUENCY\fP، وهكذا)، باستثناء الاستثناءات المذكورة في النقاط التالية. .IP \[bu] \fBMOD_CLKA\fP هو المرادف لـ \fBADJ_OFFSET_SINGLESHOT\fP. .IP \[bu] \fBMOD_CLKB\fP هو المرادف لـ \fBADJ_TICK\fP. .IP \[bu] لا يوجد مرادف لـ \fBADJ_OFFSET_SS_READ\fP، والذي لم يُوصف في KAPI. .SH "قيمة الإرجاع" عند النجاح، تُرجع \fBadjtimex\fP() و \fBntp_adjtime\fP() حالة الساعة؛ أي إحدى القيم التالية: .TP 12 \fBTIME_OK\fP الساعة متزامنة، لا يوجد تعديل ثانية كبيسة معلق. .TP \fBTIME_INS\fP يشير إلى أنه ستُضاف ثانية كبيسة في نهاية يوم UTC. .TP \fBTIME_DEL\fP يشير إلى أنه ستُحذف ثانية كبيسة في نهاية يوم UTC. .TP \fBTIME_OOP\fP إدراج ثانية كبيسة قيد التنفيذ. .TP \fBTIME_WAIT\fP اكتمل إدراج أو حذف ثانية كبيسة. سيتم إرجاع هذه القيمة حتى تقوم عملية \fBADJ_STATUS\fP التالية بمسح العلامتين \fBSTA_INS\fP و \fBSTA_DEL\fP. .TP \fBTIME_ERROR\fP ساعة النظام غير متزامنة مع خادم موثوق. يتم إرجاع هذه القيمة عندما يتحقق أي مما يلي: .RS .IP \[bu] 3 إما \fBSTA_UNSYNC\fP أو \fBSTA_CLOCKERR\fP مضبوط. .IP \[bu] \fBSTA_PPSSIGNAL\fP غير مضبوط وإما \fBSTA_PPSFREQ\fP أو \fBSTA_PPSTIME\fP مضبوط. .IP \[bu] كل من \fBSTA_PPSTIME\fP و \fBSTA_PPSJITTER\fP مضبوطان. .IP \[bu] \fBSTA_PPSFREQ\fP مضبوط وإما \fBSTA_PPSWANDER\fP أو \fBSTA_PPSJITTER\fP مضبوط. .RE .IP الاسم الرمزي \fBTIME_BAD\fP هو مرادف لـ \fBTIME_ERROR\fP، تم توفيره للتوافق مع الإصدارات السابقة. .P .\" commit 6b43ae8a619d17c4935c3320d2ef9e92bdeed05d changed to asynchronous .\" operation, so we can no longer rely on the return code. لاحظ أنه بدءًا من لينكس 3.4، تعمل الاستدعاءات بشكل غير متزامن وعادةً لا تعكس القيمة المرجعة تغيير حالة ناتج عن الاستدعاء نفسه. .P عند الفشل، ترجع هذه الاستدعاءات \-1 وتضبط \fIerrno\fP للإشارة إلى الخطأ. .SH الأخطاء .TP \fBEFAULT\fP \fIbuf\fP لا يشير إلى ذاكرة قابلة للكتابة. .TP \fBEINVAL\fP (قبل لينكس 2.6.26) .\" From a quick glance, it appears there was no clamping or range check .\" for buf.freq before Linux 2.0 جرت محاولة لتعيين \fIbuf.freq\fP إلى قيمة خارج النطاق (\-33554432, +33554432). .TP \fBEINVAL\fP (قبل لينكس 2.6.26) جرت محاولة لتعيين \fIbuf.offset\fP إلى قيمة خارج النطاق المسموح. قبل لينكس 2.0، كان النطاق المسموح (\-131072, +131072). من لينكس 2.0 فصاعدًا، أصبح النطاق المسموح (\-512000, +512000). .TP \fBEINVAL\fP جرت محاولة لتعيين \fIbuf.status\fP إلى قيمة غير تلك المذكورة أعلاه. .TP \fBEINVAL\fP \fIclk_id\fP المعطى لـ \fBclock_adjtime\fP() غير صالح لأحد سببين. إما أن قيمة معرف الساعة الموجبة المشفرة بنمط System\-V خارج النطاق، أو أن \fIclk_id\fP الديناميكي لا يشير إلى مثيل صالح لكائن ساعة. راجع \fBclock_gettime\fP(2) لمناقشة الساعات الديناميكية. .TP \fBEINVAL\fP جرت محاولة لتعيين \fIbuf.tick\fP إلى قيمة خارج النطاق 900000/\fBHZ\fP إلى 1100000/\fBHZ\fP، حيث \fBHZ\fP هو تردد مقاطعة المؤقت للنظام. .TP \fBENODEV\fP الجهاز القابل للتوصيل السريع (مثل USB على سبيل المثال) الممثل بواسطة \fIclk_id\fP ديناميكي اختفى بعد فتح جهاز الأحرف الخاص به. راجع \fBclock_gettime\fP(2) لمناقشة الساعات الديناميكية. .TP \fBEOPNOTSUPP\fP \fIclk_id\fP المعطى لا يدعم الضبط. .TP \fBEPERM\fP \fIbuf.modes\fP ليس 0 ولا \fBADJ_OFFSET_SS_READ\fP، والمستدعي لا يملك صلاحية كافية. تحت لينكس، مطلوب القدرة \fBCAP_SYS_TIME\fP. .SH السمات للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. الواجهة السمة القيمة T{ .na .nh \fB\%ntp_adjtime\fP() T} سلامة الخيوط MT\-Safe .TE .SH المعايير .TP \fBadjtimex\fP() .TQ \fBclock_adjtime\fP() لينكس. .P واجهة برمجة التطبيقات المفضلة لبرنامج NTP الخفي هي \fBntp_adjtime\fP(). .SH ملاحظات في البنية \fItimex\fP، \fIfreq\fP و \fIppsfreq\fP و \fIstabil\fP هي ppm (جزء في المليون) مع جزء كسري 16 بت، مما يعني أن القيمة 1 في أحد هذه الحقول تعني فعليًا 2\[ha]\-16 ppm، و 2\[ha]16=65536 هي 1 ppm. هذا هو الحال لكل من قيم الإدخال (في حالة \fIfreq\fP) وقيم الإخراج. .P معالجة الثانية الكبيسة التي يتم تشغيلها بواسطة \fBSTA_INS\fP و \fBSTA_DEL\fP تتم بواسطة النواة في سياق المؤقت. وبالتالي، سيستغرق الأمر علامة واحدة في الثانية لإدراج أو حذف الثانية الكبيسة. .SH "انظر أيضًا" \fBclock_gettime\fP(2), \fBclock_settime\fP(2), \fBsettimeofday\fP(2), \fBadjtime\fP(3), \fBntp_gettime\fP(3), \fBcapabilities\fP(7), \fBtime\fP(7), \fBadjtimex\fP(8), \fBhwclock\fP(8) .P .ad l .UR http:\://www.slac.stanford.edu/comp/unix/\:package/\:rtems/\:src/\:ssrlApps/\:ntpNanoclock/\:api.htm NTP "واجهة برمجة تطبيقات النواة" .UE .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .