التابع syscall‎ الخاص بالصنف Kernel في روبي

من موسوعة حسوب
< Ruby‏ | Kernel
مراجعة 17:06، 23 أكتوبر 2018 بواسطة محمد-بغات (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>syscall‎</code> الخاص بالصنف <code>Kernel</code> في روبي}}</noinclude> تصنيف: Ruby تصن...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

يستدعي التابع syscall دالة نظام التشغيل المحددة بواسطة num، ويعيد نتيجة الدالة، أو يطلق SystemCallError في حال الفشل. وسائط الدالة يمكن أن توضع بعد num. يجب أن تكون تلك الوسائط إما كائنات String أو كائنات Integer. يُمرّر كائن String كمؤشر لتسلسل البايتات (byte sequence). يتم تمرير كائن Integer كعدد صحيح، والذي له نفس حجم بتات (bit size) المؤشر. يمكن تمرير حتى تسعة وسائط. الدالة المُحددة بالوسيط num تتعلق بالنظام. في بعض أنظمة Unix، يمكن الحصول على الأعداد من ملف يدعى syscall.h.

الناتج:

استدعاء syscall في نظام ليس لديه أي طريقة لنظام دوال اعتباطي (arbitrary system function) سيفشل، وسيطلق الخطأ NotImplementedError. ملاحظة: على العموم، syscall غير آمنة وغير محمولة (unportable). لكن الأمر يعود إليك في النهاية. يفضل استخدام المكتبة DL إن كنت تريد برمجة آمنة وأكثر محمولية.

البنية العامة

syscall(num [, args...]) integer

المعاملات

num‎

args...‎

القيمة المُعادة

أمثلة

مثال على استخدام التابع syscall‎:

syscall 4, 1, "hello\n", 6   # '4' is write(2) on our box‎

انظر أيضا

  • التابع sub: يكافئ التابع sub التعبير $_.sub( args ) ، باستثناء أنه سيتم تحديث $_ إذا حدث استبدال. متوفر فقط عند تحديد خيار سطر الأوامر -p/-n.
  • التابع system: ينفذ التابع system الوسيط command… في صدفة فرعية (subshell).يأخذ command… أحد الأشكال التالية.

مصادر