.\" -*- coding: UTF-8 -*- .\" Copyright 1992, Drew Eckhardt .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH gettimeofday 2 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم gettimeofday, settimeofday \- الحصول / ضبط الوقت .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP .P \fB[[مهمل]]\fP \fBint gettimeofday(struct timeval *restrict \fP\fItv\fP\fB,\fP \fB struct timezone *_Nullable restrict \fP\fItz\fP\fB);\fP \fB[[مهمل]]\fP \fBint settimeofday(const struct timeval *\fP\fItv\fP\fB,\fP \fB const struct timezone *_Nullable \fP\fItz\fP\fB);\fP .fi .P .RS -4 متطلبات ماكروات اختبار الميزات لـ glibc (انظر \fBfeature_test_macros\fP(7)): .RE .P \fBsettimeofday\fP(): .nf منذ glibc 2.19: _DEFAULT_SOURCE glibc 2.19 وما قبله: _BSD_SOURCE .fi .SH الوصف يمكن للدالتين \fBgettimeofday\fP() و \fBsettimeofday\fP() الحصول على الوقت وضبطه بالإضافة إلى منطقة زمنية. .P الوسيط \fItv\fP هو \fIstruct timeval\fP (كما هو محدد في \fI\fP): .P .in +4n .EX struct timeval { time_t tv_sec; /* ثوانٍ */ suseconds_t tv_usec; /* ميكرو ثانية */ }; .EE .in .P ويعطي عدد الثواني والميكروثواني منذ الحقبة (انظر \fBtime\fP(2)). .P الوسيط \fItz\fP هو \fIstruct timezone\fP: .P .in +4n .EX struct timezone { int tz_minuteswest; /* دقائق غرب غرينتش */ int tz_dsttime; /* نوع تصحيح التوقيت الصيفي */ }; .EE .in .P .\" FIXME . The compilation warning looks to be going away in glibc 2.17 .\" see glibc commit 4b7634a5e03b0da6f8875de9d3f74c1cf6f2a6e8 .\" The following is covered under EPERM below: .\" .P .\" Only the superuser may use .\" .BR settimeofday (). إذا كان أي من \fItv\fP أو \fItz\fP NULL، فلن يتم ضبط البنية المقابلة أو إرجاعها. (ومع ذلك، ستنتج تحذيرات ترجمة إذا كان \fItv\fP NULL.) .P استخدام بنية \fItimezone\fP مهمل؛ يجب عادةً تحديد الوسيط \fItz\fP كـ NULL. انظر الإصدارات. .P تحت لينكس، هناك بعض دلالات "الساعة الملتوية" الغريبة المرتبطة باستدعاء النظام \fBsettimeofday\fP() إذا كان في أول استدعاء (بعد الإقلاع) يحتوي على وسيط \fItz\fP غير NULL، وكان الوسيط \fItv\fP NULL وحقل \fItz_minuteswest\fP غير صفري. (يجب أن يكون حقل \fItz_dsttime\fP صفرًا لهذه الحالة.) في مثل هذه الحالة، يُفترض أن ساعة CMOS على التوقيت المحلي، ويجب زيادتها بهذا المقدار للحصول على وقت النظام العالمي (UTC). مما لا شك فيه أن استخدام هذه الميزة فكرة سيئة. .SH "قيمة الإرجاع" ترجع \fBgettimeofday\fP() و \fBsettimeofday\fP() 0 عند النجاح. عند الخطأ، يتم إرجاع \-1 ويتم ضبط \fIerrno\fP للإشارة إلى الخطأ. .SH الأخطاء .TP \fBEFAULT\fP أشار أحد \fItv\fP أو \fItz\fP إلى خارج مساحة العنوان القابلة للوصول. .TP \fBEINVAL\fP (\fBsettimeofday\fP()): \fItimezone\fP غير صالح. .TP \fBEINVAL\fP (\fBsettimeofday\fP()): \fItv.tv_sec\fP سالب أو \fItv.tv_usec\fP خارج النطاق [0, 999,999]. .TP \fBEINVAL\fP (منذ لينكس 4.3) .\" commit e1d7ba8735551ed79c7a0463a042353574b96da3 (\fBsettimeofday\fP()): تمت محاولة ضبط الوقت على قيمة أقل من القيمة الحالية لساعة \fBCLOCK_MONOTONIC\fP (انظر \fBclock_gettime\fP(2)). .TP \fBEPERM\fP لا تملك العملية المستدعية صلاحية كافية لاستدعاء \fBsettimeofday\fP()؛ تحت لينكس، مطلوب القدرة \fBCAP_SYS_TIME\fP. .SH الإصدارات .SS "الاختلافات بين مكتبة C والنواة" في بعض البنى، يتم توفير تطبيق لـ \fBgettimeofday\fP() في \fBvdso\fP(7). .P يقبل النواة NULL لكل من \fItv\fP و \fItz\fP. يتم تجاهل وسيط المنطقة الزمنية بواسطة glibc و musl، ولا يتم تمريره إلى/من النواة. تمرر bionic الخاصة بأندرويد وسيط المنطقة الزمنية إلى/من النواة، لكن أندرويد لا يحدث المنطقة الزمنية للنواة بناءً على المنطقة الزمنية للجهاز في الإعدادات، لذا فإن المنطقة الزمنية للنواة عادةً ما تكون UTC. .SH المعايير لا شيء. .SH التاريخ 4.3BSD, SVr4. وصفت SUSv1 و POSIX.1\-2001 XSI \fBgettimeofday\fP() ولكن ليس \fBsettimeofday\fP(). وضعت POSIX.1\-2008 XSI علامة على \fBgettimeofday\fP() كمهملة، موصية باستخدام \fBclock_gettime\fP(2) بدلاً من ذلك. وبالمثل، يجب استخدام \fBclock_settime\fP(2) بدلاً من \fBsettimeofday\fP(). أزالت POSIX.1\-2024 \fBgettimeofday\fP(). .P .\" تقليديًا، كانت حقول \fIstruct timeval\fP من النوع \fIlong\fP. .SS "حقل tz_dsttime" .\" it has not .\" been and will not be supported by libc or glibc. .\" Each and every occurrence of this field in the kernel source .\" (other than the declaration) is a bug. على نواة غير لينكس، مع glibc، سيتم ضبط حقل \fItz_dsttime\fP من \fIstruct timezone\fP على قيمة غير صفرية بواسطة \fBgettimeofday\fP() إذا كانت المنطقة الزمنية الحالية قد طبقت أو ستطبق قاعدة توقيت صيفي. وبهذا المعنى، فإنه يعكس تمامًا معنى \fBdaylight\fP(3) للمنطقة الحالية. على لينكس، مع glibc، لم يتم استخدام ضبط حقل \fItz_dsttime\fP من \fIstruct timezone\fP مطلقًا بواسطة \fBsettimeofday\fP() أو \fBgettimeofday\fP(). وبالتالي، فإن ما يلي ذو أهمية تاريخية بحتة. .P على الأنظمة القديمة، يحتوي الحقل \fItz_dsttime\fP على ثابت رمزي (القيم معطاة أدناه) يشير إلى أي جزء من السنة يكون التوقيت الصيفي ساريًا. (ملاحظة: هذه القيمة ثابتة طوال العام: لا تشير إلى أن التوقيت الصيفي ساري، بل تحدد خوارزمية فقط.) خوارزميات التوقيت الصيفي المعرفة هي كما يلي: .P .in +4n .EX \f[B]DST_NONE\fR /* ليس على التوقيت الصيفي */ \f[B]DST_USA\fR /* التوقيت الصيفي على الطراز الأمريكي */ \f[B]DST_AUST\fR /* التوقيت الصيفي على الطراز الأسترالي */ \f[B]DST_WET\fR /* التوقيت الصيفي لأوروبا الغربية */ \f[B]DST_MET\fR /* التوقيت الصيفي لأوروبا الوسطى */ \f[B]DST_EET\fR /* التوقيت الصيفي لأوروبا الشرقية */ \f[B]DST_CAN\fR /* كندا */ \f[B]DST_GB\fR /* بريطانيا العظمى وأيرلندا */ \f[B]DST_RUM\fR /* رومانيا */ \f[B]DST_TUR\fR /* تركيا */ \f[B]DST_AUSTALT\fR /* الطراز الأسترالي مع تحول في 1986 */ .EE .in .P بالطبع، اتضح أن الفترة التي يكون فيها التوقيت الصيفي ساريًا لا يمكن تحديدها بخوارزمية بسيطة، واحدة لكل بلد؛ في الواقع، هذه الفترة تحددها قرارات سياسية غير متوقعة. لذلك تم التخلي عن هذه الطريقة في تمثيل المناطق الزمنية. .SH ملاحظات الوقت الذي ترجعه \fBgettimeofday\fP() \fIيتأثر\fP بالقفزات غير المستمرة في وقت النظام (مثلًا، إذا قام مسؤول النظام بتغيير وقت النظام يدويًا). إذا كنت بحاجة إلى ساعة متزايدة بشكل رتيب، انظر \fBclock_gettime\fP(2). .P الماكرو للتعامل مع بنى \fItimeval\fP موصوفة في \fBtimeradd\fP(3). .SH "انظر أيضًا" \fBdate\fP(1), \fBadjtimex\fP(2), \fBclock_gettime\fP(2), \fBtime\fP(2), \fBctime\fP(3), \fBftime\fP(3), \fBtimeradd\fP(3), \fBcapabilities\fP(7), \fBtime\fP(7), \fBvdso\fP(7), \fBhwclock\fP(8) .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .