الفرق بين المراجعتين لصفحة: «Ruby/Kernel/syscall»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>syscall</code> الخاص بالصنف <code>Kernel</code> في روبي}}</noinclude> تصنيف: Ruby تصن...' |
لا ملخص تعديل |
||
سطر 3: | سطر 3: | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby Kernel]] | [[تصنيف: Ruby Kernel]] | ||
يستدعي التابع syscall دالة نظام التشغيل المحددة بواسطة | يستدعي التابع <code>syscall</code> دالة نظام التشغيل المحددة بواسطة الوسيط المعطى <code>num</code>، ويعيد نتيجة الدالة، أو يطلق <code>SystemCallError</code> في حال حدوث فشل. | ||
وسائط الدالة المُستدعاة يمكن أن توضع بعد <code>num</code>. يجب أن تكون تلك الوسائط إما سلاسل نصية ( <code>String</code>) أو أعدادًا صحيحة ( <code>Integer</code>). يُمرّر كائن <code>String</code> كمؤشر (pointer) لتسلسل البايتات (byte sequence). ويتم تمرير كائن <code>Integer</code> كعدد صحيح له نفس حجم بتات (bit size) المؤشر. الحد الأقصى للوسائط التي يمكن تمريرها هو تسعة. | |||
استدعاء <code>syscall</code> في نظام | الدالة المُحددة بالوسيط <code>num</code> تتعلق بالنظام. في بعض أنظمة Unix، يمكن الحصول على أرقام الدوال من ملف يدعى <code>syscall.h</code>. | ||
ملاحظة: على العموم، <code>syscall</code> غير | |||
استدعاء <code>syscall</code> في نظام تشغيل غير مزود بنظام دوال اعتباطي (arbitrary system function) سيفشل، وسيطلق الخطأ <code>NotImplementedError</code>. | |||
'''ملاحظة''': على العموم، التابع <code>syscall</code> غير آمن وغير محمول (unportable). لذلك استخدمه بحذر. إن كنت تريد برمجة آمنة وأكثر محمولية، يفضل استخدام المكتبة (Fiddle) DL . | |||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="ruby">syscall(num [, args...])→ integer</syntaxhighlight> | <syntaxhighlight lang="ruby">syscall(num [, args...])→ integer</syntaxhighlight> | ||
==المعاملات== | ==المعاملات== | ||
===<code>num</code>=== | ===<code>num</code>=== | ||
رقم الدالة المراد استدعاؤها. | |||
===<code>args...</code>=== | ===<code>args...</code>=== | ||
الوسائط الممررة إلى الدالة المستدعاة. | |||
==القيمة المُعادة== | ==القيمة المُعادة== | ||
يعيد نتيجة الدالة المستدعاة. | |||
==أمثلة== | ==أمثلة== | ||
مثال على استخدام التابع <code>syscall</code>: | مثال على استخدام التابع <code>syscall</code>: | ||
<syntaxhighlight lang="ruby">syscall 4, 1, "hello\n", 6 # '4' is write(2) on our box</syntaxhighlight> | <syntaxhighlight lang="ruby">syscall 4, 1, "hello\n", 6 # '4' is write(2) on our box</syntaxhighlight>الناتج:<syntaxhighlight lang="ruby">hello | ||
</syntaxhighlight> | |||
==انظر أيضا== | ==انظر أيضا== | ||
* التابع <code>[[Ruby/Kernel/ | * التابع <code>[[Ruby/Kernel/system|system]]</code>: ينفذ التابع <code>system</code> التعليمة المعطاة في صدفة فرعية (subshell). | ||
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/Kernel.html#method-i-syscall قسم التابع syscall في الصنف Kernel في توثيق روبي الرسمي.] | *[http://ruby-doc.org/core-2.5.1/Kernel.html#method-i-syscall قسم التابع syscall في الصنف Kernel في توثيق روبي الرسمي.] |
مراجعة 17:15، 23 أكتوبر 2018
يستدعي التابع syscall
دالة نظام التشغيل المحددة بواسطة الوسيط المعطى num
، ويعيد نتيجة الدالة، أو يطلق SystemCallError
في حال حدوث فشل.
وسائط الدالة المُستدعاة يمكن أن توضع بعد num
. يجب أن تكون تلك الوسائط إما سلاسل نصية ( String
) أو أعدادًا صحيحة ( Integer
). يُمرّر كائن String
كمؤشر (pointer) لتسلسل البايتات (byte sequence). ويتم تمرير كائن Integer
كعدد صحيح له نفس حجم بتات (bit size) المؤشر. الحد الأقصى للوسائط التي يمكن تمريرها هو تسعة.
الدالة المُحددة بالوسيط num
تتعلق بالنظام. في بعض أنظمة Unix، يمكن الحصول على أرقام الدوال من ملف يدعى syscall.h
.
استدعاء syscall
في نظام تشغيل غير مزود بنظام دوال اعتباطي (arbitrary system function) سيفشل، وسيطلق الخطأ NotImplementedError
.
ملاحظة: على العموم، التابع syscall
غير آمن وغير محمول (unportable). لذلك استخدمه بحذر. إن كنت تريد برمجة آمنة وأكثر محمولية، يفضل استخدام المكتبة (Fiddle) DL .
البنية العامة
syscall(num [, args...])→ integer
المعاملات
num
رقم الدالة المراد استدعاؤها.
args...
الوسائط الممررة إلى الدالة المستدعاة.
القيمة المُعادة
يعيد نتيجة الدالة المستدعاة.
أمثلة
مثال على استخدام التابع syscall
:
syscall 4, 1, "hello\n", 6 # '4' is write(2) on our box
الناتج:
hello
انظر أيضا
- التابع
system
: ينفذ التابعsystem
التعليمة المعطاة في صدفة فرعية (subshell).