الاسم
- Provided by: manpages-ar-dev (Version: 4.31.0-1)
- Source: manpages-l10n
- Report a bug
مكتبة سي المعيارية (libc، -lc)
#define _XOPEN_SOURCE /* انظر feature_test_macros(7) */ #include <time.h>
char *strptime(const char *restrict s, const char *restrict format,
struct tm *restrict tm);
دالة strptime() هي عكس strftime(3); تُحوِّل سلسلة المحارف المشار إليها بـ s إلى قيم تُخزَّن في بنية "الوقت المفصَّل" المشار إليها بـ tm، باستخدام التنسيق المحدد بـ format.
بنية الوقت المفصَّل tm موصوفة في tm(3type).
وسيط format هو سلسلة محارف تتكون من واصفات حقول ومحارف نصية، تذكِّر بـ scanf(3). يتكون كل واصف حقل من محرف % يتبعه محرف آخر يحدد الاستبدال لواصف الحقل. يجب أن تحتوي جميع المحارف الأخرى في سلسلة format على محرف مطابق في سلسلة الإدخال، باستثناء المسافات البيضاء، التي تطابق صفرًا أو أكثر من محارف المسافات البيضاء في سلسلة الإدخال. يجب أن تكون هناك مسافة بيضاء أو محارف أبجدية رقمية أخرى بين أي واصفي حقل.
دالة strptime() تعالج سلسلة الإدخال من اليسار إلى اليمين. يُعالَج كل عنصر من عناصر الإدخال الثلاثة الممكنة (مسافة بيضاء، حرفي، أو تنسيق) واحدًا تلو الآخر. إذا تعذَّرت مطابقة الإدخال مع سلسلة التنسيق، تتوقف الدالة. لا تُعالَج بقية سلسلتي التنسيق والإدخال.
واصفات حقول الإدخال المدعومة مُدرجة أدناه. في حالة مطابقة سلسلة محارف نصية (مثل اسم يوم من أيام الأسبوع أو اسم شهر)، تكون المقارنة غير حساسة لحالة الأحرف. في حالة مطابقة رقم، يُسمح بالأصفار البادئة ولكنها غير مطلوبة.
يمكن تعديل بعض واصفات الحقول بواسطة حرفي التعديل E أو O للإشارة إلى أنه يجب استخدام تنسيق أو مواصفات بديلة. إذا لم يكن التنسيق أو المواصفات البديلة موجودة في الإعدادات المحلية الحالية، يُستخدم واصف الحقل غير المعدل.
يحدد معدل E أن سلسلة المحارف المدخلة قد تحتوي على إصدارات بديلة تعتمد على الإعدادات المحلية لتمثيل التاريخ والوقت:
يحدد المُعدِّل O أن الإدخال الرقمي قد يكون بصيغة بديلة معتمدة على المحلية:
قيمة إرجاع الدالة هي مؤشر إلى أول حرف لم يُعالج في استدعاء الدالة هذا. في حال احتواء سلسلة المحارف المدخلة على محارف أكثر مما تتطلبه سلسلة التنسيق، يشير المؤشر إلى ما بعد آخر حرف مدخل تم استهلاكه. في حال استهلاك سلسلة المحارف المدخلة بالكامل، يشير المؤشر إلى البايت الصفري في نهاية السلسلة. إذا فشلت strptime() في مطابقة كامل سلسلة التنسيق وبالتالي حدث خطأ، تُرجع الدالة NULL.
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
| الواجهة | السمة | القيمة |
| strptime() | سلامة الخيوط | بيئة محلية آمنة لتعدد الخيوط (MT-Safe) |
POSIX.1-2008.
POSIX.1-2001, SUSv2.
من حيث المبدأ، لا تُهيئ هذه الدالة tm بل تخزن فقط القيم المحددة. هذا يعني أنه يجب تهيئة tm قبل الاستدعاء. تختلف التفاصيل قليلاً بين أنظمة UNIX المختلفة. لا يلمس تطبيق glibc تلك الحقول غير المحددة صراحة، باستثناء إعادة حساب حقلي tm_wday و tm_yday إذا تغير أي من عناصر السنة أو الشهر أو اليوم.
يُؤخذ تحديد 'y' (السنة في القرن) لتحديد سنة في النطاق 1950–2049 بواسطة glibc 2.0. ويُؤخذ كسنة في 1969–2068 منذ glibc 2.1.
لأسباب التناظر، يحاول glibc دعم نفس محارف التنسيق لـ strptime() كما هو الحال لـ strftime(3). (في معظم الحالات، تُحلل الحقول المقابلة، لكن لا يُغير أي حقل في tm.) يؤدي هذا إلى:
وبالمثل، نظرًا لامتدادات GNU لـ strftime(3)، يُقبل %k كمرادف لـ %H، ويجب قبول %l كمرادف لـ %I، ويُقبل %P كمرادف لـ %p. وأخيرًا:
لا يتطلب تنفيذ glibc وجود مسافة بيضاء بين واصفَي حقلين.
يوضح المثال التالي استخدام strptime() وstrftime(3).
#define _XOPEN_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
int
main(void)
{
struct tm tm;
char buf[255];
memset(&tm, 0, sizeof(tm));
strptime("2001-11-12 18:31:01", "%Y-%m-%d %H:%M:%S", &tm);
strftime(buf, sizeof(buf), "%d %b %Y %H:%M", &tm);
puts(buf);
exit(EXIT_SUCCESS);
}
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.