التابع syscall الخاص بالصنف Kernel في روبي
يستدعي التابع 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… أحد الأشكال التالية.