.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 2001, Walter Harms .\" 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 getdate 3 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم getdate, getdate_r \- تحويل سلسلة محارف تاريخ ووقت إلى وقت مفصل .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP .P \fBstruct tm *getdate(const char *\fP\fIstring\fP\fB);\fP .P \fBextern int getdate_err;\fP .P \fBint getdate_r(const char *restrict \fP\fIstring\fP\fB, struct tm *restrict \fP\fIres\fP\fB);\fP .fi .P .RS -4 متطلبات ماكروات اختبار الميزات لـ glibc (انظر \fBfeature_test_macros\fP(7)): .RE .P \fBgetdate\fP(): .nf .\" || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED _XOPEN_SOURCE >= 500 .fi .P \fBgetdate_r\fP(): .nf _GNU_SOURCE .fi .SH الوصف تحوِّل الدالة \fBgetdate\fP() تمثيلاً سلسلة محارف لتاريخ ووقت، موجودًا في المخزن المؤقت المشار إليه بواسطة \fIstring\fP، إلى وقت مفصل. يُخزَّن الوقت المفصل في بنية \fItm\fP، ويُعاد مؤشر إلى هذه البنية كنتيجة للدالة. تُخصَّص بنية \fItm\fP هذه في تخزين ثابت، وبالتالي تُستبدل باستدعاءات لاحقة لـ \fBgetdate\fP(). .P على عكس \fBstrptime\fP(3) (التي تحتوي على معامل \fIformat\fP)، تستخدم \fBgetdate\fP() التنسيقات الموجودة في الملف الذي يُعطى اسم مساره الكامل في متغير البيئة \fBDATEMSK\fP. يُستخدم السطر الأول في الملف الذي يطابق سلسلة المحارف المُدخلة للتحويل. .P تُجرى المطابقة دون حساسية لحالة الأحرف. يُتجاهل الفراغ الزائد، سواء في النمط أو في السلسلة المراد تحويلها. .P مواصفات التحويل التي يمكن أن يحتويها النمط هي تلك المُعطاة لـ \fBstrptime\fP(3). تُحدد مواصفة تحويل إضافية واحدة في POSIX.1\-2001: .TP \fB%Z\fP .\" FIXME Is it (still) true that %Z is not supported in glibc? .\" Looking at the glibc 2.21 source code, where the implementation uses .\" strptime(), suggests that it might be supported. اسم المنطقة الزمنية. لم يُطبَّق هذا في glibc. .P عندما يُعطى \fB%Z\fP، تُهيَّأ البنية المحتوية على الوقت المفصل بقيم تتوافق مع الوقت الحالي في المنطقة الزمنية المُعطاة. وإلا، تُهيَّأ البنية إلى الوقت المفصل الموافق للوقت المحلي الحالي (كما في استدعاء \fBlocaltime\fP(3)). .P عندما يُعطى يوم الأسبوع فقط، يُؤخذ اليوم على أنه أول يوم من هذا النوع في أو بعد اليوم. .P عندما يُعطى الشهر فقط (بدون سنة)، يُؤخذ الشهر على أنه أول شهر من هذا النوع مساوٍ أو بعد الشهر الحالي. إذا لم يُعطَ يوم، فهو أول يوم من الشهر. .P عندما لا تُعطى ساعة ودقيقة وثانية، تُؤخذ الساعة والدقيقة والثانية الحالية. .P إذا لم يُعطَ تاريخ، ولكننا نعرف الساعة، فتُؤخذ تلك الساعة على أنها أول ساعة من هذا النوع مساوية أو بعد الساعة الحالية. .P \fBgetdate_r\fP() هي إضافة GNU تُوفر نسخة قابلة لإعادة الدخول من \fBgetdate\fP(). بدلاً من استخدام متغير عام للإبلاغ عن الأخطاء ومخزن مؤقت ثابت لإعادة الوقت المفصل، تُعيد الأخطاء عبر قيمة نتيجة الدالة، وتُعيد الوقت المفصل الناتج في المخزن المؤقت المُخصص من قبل المستدعي والمشار إليه بواسطة المعامل \fIres\fP. .SH "قيمة الإرجاع" عند النجاح، تُعيد \fBgetdate\fP() مؤشرًا إلى \fIstruct tm\fP. وإلا، تُعيد NULL وتضبط المتغير العام \fIgetdate_err\fP على أحد أرقام الأخطاء الموضحة أدناه. التغييرات على \fIerrno\fP غير محددة. .P عند النجاح، تُعيد \fBgetdate_r\fP() 0؛ عند الخطأ، تُعيد أحد أرقام الأخطاء الموضحة أدناه. .SH الأخطاء تُعاد الأخطاء التالية عبر \fIgetdate_err\fP (لـ \fBgetdate\fP()) أو كنتيجة للدالة (لـ \fBgetdate_r\fP()): .TP 4n \fB1\fP متغير البيئة \fBDATEMSK\fP غير مُعرَّف، أو قيمته سلسلة محارف فارغة. .TP \fB2\fP ملف القالب المُحدَّد بواسطة \fBDATEMSK\fP لا يمكن فتحه للقراءة. .TP \fB3\fP .\" stat() فشل الحصول على معلومات حالة الملف. .TP \fB4\fP ملف القالب ليس ملفًا عاديًا. .TP \fB5\fP وُجِد خطأ أثناء قراءة ملف القالب. .TP \fB6\fP .\" Error 6 doesn't seem to occur in glibc فشل تخصيص الذاكرة (لا توجد ذاكرة كافية متاحة). .TP \fB7\fP لا يوجد سطر في الملف يطابق المُدخل. .TP \fB8\fP مواصفات مُدخل غير صالحة. .SH البيئة .TP \fBDATEMSK\fP ملف يحتوي على أنماط التنسيق. .TP \fBTZ\fP .TQ \fBLC_TIME\fP متغيرات تُستخدم بواسطة \fBstrptime\fP(3). .SH السمات للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر \fBattributes\fP(7). .TS allbox; lb lb lbx l l l. الواجهة السمة القيمة T{ .na .nh \fBgetdate\fP() T} سلامة الخيوط T{ .na .nh MT\-Unsafe race:getdate env locale T} T{ .na .nh \fBgetdate_r\fP() T} سلامة الخيوط T{ .na .nh بيئة محلية آمنة لتعدد الخيوط (MT\-Safe) T} .TE .SH الإصدارات مواصفات POSIX.1 لـ \fBstrptime\fP(3) تحتوي على مواصفات تحويل تستخدم المُعدِّل \fB%E\fP أو \fB%O\fP، بينما هذه المواصفات غير مُعطاة لـ \fBgetdate\fP(). في glibc، \fBgetdate\fP() مُطبَّقة باستخدام \fBstrptime\fP(3)، لذا فإن نفس التحويلات مدعومة تمامًا بواسطة كلتيهما. .SH المعايير POSIX.1\-2008. .SH التاريخ POSIX.1\-2001. .SH أمثلة البرنامج أدناه يستدعي \fBgetdate\fP() لكل وسيط من وسائط سطر الأوامر، ولكل استدعاء يعرض القيم في حقول بنية \fItm\fP المُرجَعة. جلسة الصدفة التالية توضح تشغيل البرنامج: .P .in +4n .EX $\fB TFILE=$PWD/tfile\fP $\fB echo \[aq]%A\[aq] > $TFILE \fP # Full name of the day of the week $\fB echo \[aq]%T\[aq] >> $TFILE\fP # Time (HH:MM:SS) $\fB echo \[aq]%F\[aq] >> $TFILE\fP # ISO date (YYYY\-MM\-DD) $\fB date\fP $\fB export DATEMSK=$TFILE\fP $\fB ./a.out Tuesday \[aq]2009\-12\-28\[aq] \[aq]12:22:33\[aq]\fP Sun Sep 7 06:03:36 CEST 2008 Call 1 ("Tuesday") succeeded: tm_sec = 36 tm_min = 3 tm_hour = 6 tm_mday = 9 tm_mon = 8 tm_year = 108 tm_wday = 2 tm_yday = 252 tm_isdst = 1 Call 2 ("2009\-12\-28") succeeded: tm_sec = 36 tm_min = 3 tm_hour = 6 tm_mday = 28 tm_mon = 11 tm_year = 109 tm_wday = 1 tm_yday = 361 tm_isdst = 0 Call 3 ("12:22:33") succeeded: tm_sec = 33 tm_min = 22 tm_hour = 12 tm_mday = 7 tm_mon = 8 tm_year = 108 tm_wday = 0 tm_yday = 250 tm_isdst = 1 .EE .in .SS "مصدر البرنامج" .\" SRC BEGIN (getdate.c) \& .EX #define _GNU_SOURCE #include #include #include \& int main(int argc, char *argv[]) { struct tm *tmp; \& for (size_t j = 1; j < argc; j++) { tmp = getdate(argv[j]); \& if (tmp == NULL) { printf("Call %zu failed; getdate_err = %d\[rs]n", j, getdate_err); continue; } \& printf("Call %zu (\[rs]"%s\[rs]") succeeded:\[rs]n", j, argv[j]); printf(" tm_sec = %d\[rs]n", tmp\->tm_sec); printf(" tm_min = %d\[rs]n", tmp\->tm_min); printf(" tm_hour = %d\[rs]n", tmp\->tm_hour); printf(" tm_mday = %d\[rs]n", tmp\->tm_mday); printf(" tm_mon = %d\[rs]n", tmp\->tm_mon); printf(" tm_year = %d\[rs]n", tmp\->tm_year); printf(" tm_wday = %d\[rs]n", tmp\->tm_wday); printf(" tm_yday = %d\[rs]n", tmp\->tm_yday); printf(" tm_isdst = %d\[rs]n", tmp\->tm_isdst); } \& exit(EXIT_SUCCESS); } .EE .\" SRC END .SH "انظر أيضًا" \fBtime\fP(2), \fBlocaltime\fP(3), \fBsetlocale\fP(3), \fBstrftime\fP(3), \fBstrptime\fP(3) .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .