Scroll to navigation

getrusage(2) System Calls Manual getrusage(2)

الاسم

getrusage - الحصول على استخدام الموارد

المكتبة

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

موجز

#include <sys/resource.h>
int getrusage(int who, struct rusage *usage);

الوصف

ترجع getrusage() مقاييس استخدام الموارد لـ who، والتي يمكن أن تكون واحدة مما يلي:

إرجاع إحصائيات استخدام الموارد للعملية المستدعية، وهو مجموع الموارد المستخدمة من قبل جميع الخيوط في العملية.
إرجاع إحصائيات استخدام الموارد لجميع أبناء العملية المستدعية الذين أنهوا وانُتظروا. ستتضمن هذه الإحصائيات الموارد المستخدمة من قبل الأحفاد، والنسل الأبعد، إذا انتظر جميع النسل المتوسط أبنائهم المنتهين.
إرجاع إحصائيات استخدام الموارد للخيط المستدعي. يجب تعريف ماكرو اختبار الميزة _GNU_SOURCE (قبل تضمين أي ملف رأس) للحصول على تعريف هذا الثابت من <sys/resource.h>.

تُرجع استخدامات الموارد في البنية المشار إليها بواسطة usage، والتي لها الشكل التالي:


struct rusage {

struct timeval ru_utime; /* user CPU time used */
struct timeval ru_stime; /* system CPU time used */
long ru_maxrss; /* maximum resident set size */
long ru_ixrss; /* integral shared memory size */
long ru_idrss; /* integral unshared data size */
long ru_isrss; /* integral unshared stack size */
long ru_minflt; /* page reclaims (soft page faults) */
long ru_majflt; /* page faults (hard page faults) */
long ru_nswap; /* swaps */
long ru_inblock; /* block input operations */
long ru_oublock; /* block output operations */
long ru_msgsnd; /* IPC messages sent */
long ru_msgrcv; /* IPC messages received */
long ru_nsignals; /* signals received */
long ru_nvcsw; /* voluntary context switches */
long ru_nivcsw; /* involuntary context switches */ };

لا تكتمل جميع الحقول؛ تضبط النواة الحقول غير المُدارة على الصفر. (تُوفر الحقول غير المُدارة للتوافق مع الأنظمة الأخرى، ولأنها قد تُدعم يومًا ما على Linux.) تُفسر الحقول كما يلي:

هذا هو إجمالي الوقت المنفق في التنفيذ في وضع المستخدم، معبرًا عنه في بنية timeval (ثوانٍ زائد ميكروثوانٍ).
هذا هو إجمالي الوقت المنفق في التنفيذ في وضع النواة، معبرًا عنه في بنية timeval (ثوانٍ زائد ميكروثوانٍ).
هذا هو الحد الأقصى لحجم المجموعة المقيمة المستخدم (بالـ KiB). بالنسبة لـ RUSAGE_CHILDREN، هذا هو حجم المجموعة المقيمة لأكبر ابن، وليس الحد الأقصى لحجم المجموعة المقيمة لشجرة العملية.
هذا الحقل غير مستخدم حاليًا على Linux.
هذا الحقل غير مستخدم حاليًا على Linux.
هذا الحقل غير مستخدم حاليًا على Linux.
عدد أخطاء الصفحة التي تمت خدمتها دون أي نشاط إدخال/إخراج؛ هنا، يُتجنب نشاط الإدخال/الإخراج عن طريق “استعادة” إطار صفحة من قائمة الصفحات المنتظرة لإعادة التخصيص.
عدد أخطاء الصفحة التي تمت خدمتها والتي تطلبت نشاط إدخال/إخراج.
هذا الحقل غير مستخدم حاليًا على Linux.
عدد المرات التي اضطر فيها نظام الملفات إلى تنفيذ إدخال.
عدد المرات التي اضطر فيها نظام الملفات إلى تنفيذ إخراج.
هذا الحقل غير مستخدم حاليًا على Linux.
هذا الحقل غير مستخدم حاليًا على Linux.
هذا الحقل غير مستخدم حاليًا على Linux.
عدد المرات التي نتج فيها تبديل سياق بسبب تخلي عملية طوعيًا عن المعالج قبل اكتمال شريحة وقتها (عادةً لانتظار توفر مورد).
عدد المرات التي نتج فيها تبديل سياق بسبب جعل عملية ذات أولوية أعلى قابلة للتشغيل أو لأن العملية الحالية تجاوزت شريحة وقتها.

قيمة الإرجاع

عند النجاح، يُعاد الصفر. وعند حدوث خطأ، يُعاد الرقم -1، ويُضبط errno للإشارة إلى الخطأ.

الأخطاء

يشير usage إلى خارج مساحة العنوان القابلة للوصول.
who غير صالح.

السمات

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

الواجهة السمة القيمة
getrusage() سلامة الخيوط MT-Safe

المعايير

POSIX.1-2024.

يحدد POSIX.1 getrusage()، لكنه يحدد فقط الحقلين ru_utime و ru_stime.

RUSAGE_THREAD خاص بلينكس.

التاريخ

4.3BSD, SVr4, SUSv1, POSIX.1-2001 XSI.

قبل لينكس 2.6.9، إذا تم تعيين تصرف SIGCHLD إلى SIG_IGN فإن استخدامات موارد العمليات الفرعية تُضمّن آليًا في القيمة التي يعيدها RUSAGE_CHILDREN، على الرغم من أن POSIX.1-2001 يمنع ذلك صراحةً. تم تصحيح هذا عدم الامتثال في لينكس 2.6.9 والإصدارات الأحدث.

تعريف البنية الموضح في بداية هذه الصفحة مأخوذ من 4.3BSD Reno.

وفرت الأنظمة القديمة دالة vtimes() بغرض مشابه لـ getrusage(). للتوافق مع الإصدارات السابقة، يوفر glibc (حتى لينكس 2.32) أيضًا vtimes(). يجب كتابة جميع التطبيقات الجديدة باستخدام getrusage(). (منذ لينكس 2.33، لم يعد glibc يوفر تنفيذًا لـ vtimes().)

ملاحظات

يتم الحفاظ على مقاييس استخدام الموارد عبر execve(2).

انظر أيضًا

clock_gettime(2), getrlimit(2), times(2), wait(2), wait4(2), clock(3), proc_pid_stat(5), proc_pid_io(5)

ترجمة

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

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

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

8 فبراير 2026 صفحات دليل لينكس 6.18