.\" -*- coding: UTF-8 -*- .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: GPL-2.0-or-later .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH _syscall 2 "17 مايو 2025" "صفحات دليل لينكس 6.18" .SH الاسم _syscall \- استدعاء نداء نظام دون دعم مكتبة (مهجورة) .SH موجز .nf \fB#include \fP .P كليَّة _syscall .P نداء النظام المطلوب .fi .SH الوصف الشيء المهم معرفته عن نداء النظام هو نموذجه الأولي. تحتاج إلى معرفة عدد الوسائط وأنواعها ونوع إرجاع الدالة. هناك سبع كليَّات تُسهِّل الاستدعاء الفعلي للنظام. صيغتها كالتالي: .P .in +4n .EX _syscall\fIX\fP(\fItype\fP,\fIname\fP,\fItype1\fP,\fIarg1\fP,\fItype2\fP,\fIarg2\fP,...) .EE .in .P أين .IP \fIX\fP هو 0\[en]6، وهو عدد الوسائط التي يأخذها نداء النظام .IP \fItype\fP هو نوع إرجاع نداء النظام .IP \fIname\fP هو اسم نداء النظام .IP \fItypeN\fP هو نوع الوسيطة رقم N .IP \fIargN\fP هو اسم الوسيطة رقم N .P تنشئ هذه الكليَّات دالة تُسمى \fIname\fP بالوسائط التي تحددها. بمجرد تضمين _syscall() في ملف المصدر الخاص بك، تستدعي نداء النظام باستخدام \fIname\fP. .SH الملفات \fI/usr/include/linux/unistd.h\fP .SH المعايير لينكس. .SH التاريخ بدءًا من حوالي Linux 2.6.18، أُزيلت كليَّات _syscall من ملفات الرأس المقدمة لمساحة المستخدم. استخدم \fBsyscall\fP(2) بدلاً من ذلك. (بعض البنى، ولا سيما ia64، لم توفر أبدًا كليَّات _syscall؛ على تلك البنى، كان \fBsyscall\fP(2) مطلوبًا دائمًا.) .SH ملاحظات كليَّات _syscall() \fIلا\fP تُنتج نموذجًا أوليًا. قد تحتاج إلى إنشاء واحد، خاصة لمستخدمي C++. .P ليست نداءات النظام مطلوبة لإرجاع رموز خطأ موجبة أو سالبة فقط. تحتاج إلى قراءة المصدر للتأكد من كيفية إرجاع الأخطاء. عادةً، هو سالب رمز الخطأ القياسي، على سبيل المثال، \-\fIEPERM\fP. ستعيد كليَّات _syscall() النتيجة \fIr\fP لنداء النظام عندما تكون \fIr\fP غير سالبة، لكنها ستعيد \-1 وتضبط المتغير \fIerrno\fP إلى \-\fIr\fP عندما تكون \fIr\fP سالبة. لرموز الخطأ، انظر \fBerrno\fP(3). .P .\" The preferred way to invoke system calls that glibc does not know .\" about yet is via .\" .BR syscall (2). .\" However, this mechanism can be used only if using a libc .\" (such as glibc) that supports .\" .BR syscall (2), .\" and if the .\" .I .\" header file contains the required SYS_foo definition. .\" Otherwise, the use of a _syscall macro is required. .\" عند تعريف نداء نظام، \fIيجب\fP تمرير أنواع الوسائط بالقيمة أو بالمؤشر (للتجميعات مثل الهياكل). .SH أمثلة .\" SRC BEGIN (_syscall.c) .EX #include #include #include #include /* for _syscallX macros/related stuff */ #include /* for struct sysinfo */ \& _syscall1(int, sysinfo, struct sysinfo *, info); \& int main(void) { struct sysinfo s_info; int error; \& error = sysinfo(&s_info); printf("code error = %d\[rs]n", error); printf("Uptime = %lds\[rs]nLoad: 1 min %lu / 5 min %lu / 15 min %lu\[rs]n" "RAM: total %lu / free %lu / shared %lu\[rs]n" "Memory in buffers = %lu\[rs]nSwap: total %lu / free %lu\[rs]n" "Number of processes = %d\[rs]n", s_info.uptime, s_info.loads[0], s_info.loads[1], s_info.loads[2], s_info.totalram, s_info.freeram, s_info.sharedram, s_info.bufferram, s_info.totalswap, s_info.freeswap, s_info.procs); exit(EXIT_SUCCESS); } .EE .\" SRC END .SS "مخرجات نموذجية" .EX code error = 0 uptime = 502034s Load: 1 min 13376 / 5 min 5504 / 15 min 1152 RAM: total 15343616 / free 827392 / shared 8237056 Memory in buffers = 5066752 Swap: total 27881472 / free 24698880 Number of processes = 40 .EE .SH "انظر أيضًا" \fBintro\fP(2), \fBsyscall\fP(2), \fBerrno\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 .