memcmp(3)

الاسم
memcmp - مقارنة مناطق الذاكرة

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

موجز
#include <string.h>

int memcmp(size_t n;
           const void s1[n], const void s2[n], size_t n);

الوصف
تقارن الدالة memcmp() أول n بايت (كل منها يُفسر كـ unsigned char) من منطقتي الذاكرة s1 و s2.

قيمة الإرجاع
تُرجع الدالة memcmp() عددًا صحيحًا أقل من الصفر، أو مساويًا له، أو أكبر منه إذا وُجد أن أول n بايت من s1 أقل، أو مطابق، أو أكبر من أول n بايت من s2، على التوالي.

بالنسبة لقيمة إرجاع غير صفرية، تُحدد الإشارة بإشارة الفرق بين أول زوج من البايتات (المُفسرة كـ unsigned char) التي تختلف في s1 و s2.

إذا كان n صفرًا، تكون قيمة الإرجاع صفرًا.

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

المعايير
C11, POSIX.1-2008.

التاريخ
POSIX.1-2001، C89، SVr4، 4.3BSD.

تحذيرات
لا تستخدم memcmp() لمقارنة بيانات سرية، مثل الأسرار التشفيرية، لأن وقت وحدة المعالجة المركزية المطلوب للمقارنة يعتمد على محتويات العناوين المقارنة، فهذه الدالة عرضة لهجمات القنوات الجانبية القائمة على التوقيت. في مثل هذه الحالات، يلزم دالة تُجري مقارنات في وقت حتمي، يعتمد فقط على n (كمية البايتات المقارنة). توفر بعض أنظمة التشغيل مثل هذه الدالة (مثل consttime_memequal() من NetBSD)، لكن لا تُحدد أي دالة من هذا القبيل في POSIX. على لينكس، قد تحتاج إلى تنفيذ مثل هذه الدالة بنفسك.

انظر أيضًا
bstring(3), strcasecmp(3), strcmp(3), strcoll(3), strncasecmp(3), strncmp(3), wmemcmp(3)

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

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

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