.\" -*- coding: UTF-8 -*- .\" Copyright 2006, Andi Kleen .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-1-para .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH getcpu 2 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم getcpu \- تحديد وحدة المعالجة المركزية وعقدة NUMA التي يعمل عليها الخيط المستدعي .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#define _GNU_SOURCE\fP /* انظر feature_test_macros(7) */ \fB#include \fP .P \fBint getcpu(unsigned int *_Nullable \fP\fIcpu\fP\fB, unsigned int *_Nullable \fP\fInode\fP\fB);\fP .fi .SH الوصف استدعاء النظام \fBgetcpu\fP() يحدد المعالج والعقدة التي يعمل عليها الخيط أو العملية المستدعية حاليًا ويكتبهما في الأعداد الصحيحة المشار إليها بواسطة الوسيطتين \fIcpu\fP و \fInode\fP. المعالج هو عدد صحيح صغير فريد يعرّف وحدة المعالجة المركزية. العقدة هي معرّف صغير فريد يعرّف عقدة NUMA. عندما تكون أي من \fIcpu\fP أو \fInode\fP NULL، لا يُكتب شيء إلى المؤشر المعني. .P المعلومات الموضوعة في \fIcpu\fP مضمونة لتكون حديثة فقط في وقت الاستدعاء: ما لم يتم تثبيت تقارب وحدة المعالجة المركزية باستخدام \fBsched_setaffinity\fP(2)، قد يغير النواة وحدة المعالجة المركزية في أي وقت. (عادةً لا يحدث هذا لأن المجدول يحاول تقليل الحركات بين وحدات المعالجة المركزية للحفاظ على الخبيئات ساخنة، لكنه ممكن.) يجب على المستدعي السماح بإمكانية أن المعلومات المعادة في \fIcpu\fP و \fInode\fP لم تعد حديثة بحلول وقت عودة الاستدعاء. .SH "قيمة الإرجاع" عند النجاح، يُعاد الرقم 0. وعند حدوث خطأ، يُعاد الرقم \-1، ويُضبط \fIerrno\fP للإشارة إلى الخطأ. .SH الأخطاء .TP \fBEFAULT\fP الوسائط تشير إلى خارج مساحة عنوان العملية المستدعية. .SH المعايير لينكس. .SH التاريخ .\" لينكس 2.6.19 (x86\-64 و i386)، glibc 2.29. .SS "الاختلافات بين مكتبة C والنواة" استدعاء النظام للنواة يحتوي على وسيطة ثالثة: .P .in +4n .nf \fBint getcpu(unsigned int *\fP\fIcpu\fP\fB, unsigned int *\fP\fInode\fP\fB,\fP \fB struct getcpu_cache *\fP\fItcache\fP\fB);\fP .fi .in .P الوسيطة \fItcache\fP غير مستخدمة منذ لينكس 2.6.24، ويجب (عند استدعاء استدعاء النظام مباشرة) تحديدها كـ NULL، ما لم تكن قابلية النقل إلى لينكس 2.6.23 أو إصدار أقدم مطلوبة. .P .\" commit 4307d1e5ada595c87f9a4d16db16ba5edb70dcb1 .\" Author: Ingo Molnar .\" Date: Wed Nov 7 18:37:48 2007 +0100 .\" x86: ignore the sys_getcpu() tcache parameter .\" .\" ===== Before Linux 2.6.24: ===== .\" .I tcache .\" is a pointer to a .\" .IR "struct getcpu_cache" .\" that is used as a cache by .\" .BR getcpu (). .\" The caller should put the cache into a thread-local variable .\" if the process is multithreaded, .\" because the cache cannot be shared between different threads. .\" .I tcache .\" can be NULL. .\" If it is not NULL .\" .BR getcpu () .\" will use it to speed up operation. .\" The information inside the cache is private to the system call .\" and should not be accessed by the user program. .\" The information placed in the cache can change between Linux releases. .\" .\" When no cache is specified .\" .BR getcpu () .\" will be slower, .\" but always retrieve the current CPU and node information. .\" With a cache .\" .BR getcpu () .\" is faster. .\" However, the cached information is updated only once per jiffy (see .\" .BR time (7)). .\" This means that the information could theoretically be out of date, .\" although in practice the scheduler's attempt to maintain .\" soft CPU affinity means that the information is unlikely to change .\" over the course of the caching interval. في لينكس 2.6.23 والإصدارات الأقدم، إذا كانت الوسيطة \fItcache\fP غير NULL، فإنها تحدد مؤشرًا إلى مخزن مخصص من قبل المستدعي في تخزين محلي للخيط يُستخدم لتوفير آلية تخزين مؤقت لـ \fBgetcpu\fP(). استخدام الخبيئة قد يسرع استدعاءات \fBgetcpu\fP()، على حساب وجود فرصة صغيرة جدًا بأن المعلومات المعادة قد تكون قديمة. اعتُبرت آلية التخزين المؤقت أنها تسبب مشاكل عند ترحيل الخيوط بين وحدات المعالجة المركزية، ولذا يتم تجاهل الوسيطة الآن. .SH ملاحظات يبذل لينكس أقصى جهد لجعل هذا الاستدعاء بأسرع ما يمكن. (على بعض البنيات، يتم ذلك عبر تنفيذ في \fBvdso\fP(7).) القصد من \fBgetcpu\fP() هو السماح للبرامج بإجراء تحسينات باستخدام بيانات لكل وحدة معالجة مركزية أو لتحسين NUMA. .SH "انظر أيضًا" \fBmbind\fP(2), \fBsched_setaffinity\fP(2), \fBset_mempolicy\fP(2), \fBsched_getcpu\fP(3), \fBcpuset\fP(7), \fBvdso\fP(7) .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .