التابع 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… أحد الأشكال التالية.