الفرق بين المراجعتين لصفحة: «Ruby/Dir/chdir»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) ط مراجعة وتدقيق |
||
(3 مراجعات متوسطة بواسطة مستخدم واحد آخر غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: التابع <code>chdir | <noinclude>{{DISPLAYTITLE: التابع <code>Dir.chdir</code> في روبي}}</noinclude> | ||
[[تصنيف: Ruby]] | [[تصنيف: Ruby]] | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby Dir]] | [[تصنيف: Ruby Dir]] | ||
يغيِّر التابع <code>chdir</code> مجلد العمل (working directory) الحالي للعملية الحالية إلى مجلَّدٍ محدَّدٍ. عند استدعائه بدون تمرير وسيط، فسيغيِّر مجلد العمل إلى قيمة متغير البيئة <code>HOME</code> أو <code>LOGDIR.SystemCallError</code> (وربما <code>Errno::ENOENT</code>) إذا كان المجلد المُستهدَف غير موجود. | |||
في حال | في حال تمرير كتلة برمجية إلى التابع، فسيُمرّر إليها اسم المجلد الحالي الجديد، وستنفّذ الكتلة على اعتباره المجلد الحالي. بعد تنفيذ الكتلة والخروج منها، سيُستعَاد مجلد العمل الأصلي آنذاك. وتكون القيمة المعادة للتابع <code>chdir</code> مساويةً لقيمة الكتلة. | ||
يمكن أن تتشعّب | يمكن أن تتشعّب الكتل <code>chdir</code>، ولكن سيُطلَق خطأٌ في البرامج ذات الخيوط المتعددة (Multi-threaded) إذا حاول أحد المهام الفرعية (thread) فتح الكتلة <code>chdir</code> بينما تعمل مهمة فرعية أخرى على فتح آخر. | ||
==البنية العامة== | |||
== البنية العامة == | |||
<syntaxhighlight lang="ruby"> | <syntaxhighlight lang="ruby"> | ||
chdir( [ string] ) → 0 | chdir( [ string] ) → 0 | ||
chdir( [ string] ) {| path | block } → anObject | chdir( [ string] ) {| path | block } → anObject | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==المعاملات== | |||
== المعاملات == | ===<code>string</code>=== | ||
=== <code>string</code> === | |||
يحتوي هذا المعامل عنوان مجلد العمل الجديد. | يحتوي هذا المعامل عنوان مجلد العمل الجديد. | ||
==القيمة المعادة== | |||
== القيمة | في حال تمرير كتلة، فسيُعاد ناتج تنفيذ هذه الكتلة بعد تمرير مجلد العمل الجديد. | ||
في حال تمرير | ==أمثلة== | ||
مثال عن استخدام التابع <code>chdir</code> على المجلد <code>testdir</code> الذي يحوي ملفين عاديين (<code>config.h</code> و <code>main.rb</code>)، والمجلد الأب (<code>..</code>)، والمجلد نفسه (<code>.</code>).<syntaxhighlight lang="ruby"> | |||
== أمثلة == | |||
Dir.chdir("/var/spool/mail") | Dir.chdir("/var/spool/mail") | ||
puts Dir.pwd | puts Dir.pwd | ||
سطر 35: | سطر 30: | ||
end | end | ||
puts Dir.pwd | puts Dir.pwd | ||
</syntaxhighlight>سينتج عن تنفيذ هذه الشيفرة الناتج التالي:<syntaxhighlight lang="text"> | |||
/var/spool/mail | |||
/tmp | |||
/usr | |||
/tmp | |||
/var/spool/mail | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== | ==انظر أيضًا== | ||
*التابع <code>[[Ruby/Dir/getwd|getwd]]</code>: يعيد مسار مجلد العمل (working directory) الحالي للعملية على شكل سلسلة نصية. | |||
* التابع <code>[[Ruby/Dir/ | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/Dir.html#method-c-chdir قسم التابع chdir في الصنف Dir في توثيق روبي الرسمي.] | |||
== مصادر == | |||
* [http://ruby-doc.org/core-2.5.1/Dir.html#method-c-chdir قسم |
المراجعة الحالية بتاريخ 22:30، 10 نوفمبر 2018
يغيِّر التابع chdir
مجلد العمل (working directory) الحالي للعملية الحالية إلى مجلَّدٍ محدَّدٍ. عند استدعائه بدون تمرير وسيط، فسيغيِّر مجلد العمل إلى قيمة متغير البيئة HOME
أو LOGDIR.SystemCallError
(وربما Errno::ENOENT
) إذا كان المجلد المُستهدَف غير موجود.
في حال تمرير كتلة برمجية إلى التابع، فسيُمرّر إليها اسم المجلد الحالي الجديد، وستنفّذ الكتلة على اعتباره المجلد الحالي. بعد تنفيذ الكتلة والخروج منها، سيُستعَاد مجلد العمل الأصلي آنذاك. وتكون القيمة المعادة للتابع chdir
مساويةً لقيمة الكتلة.
يمكن أن تتشعّب الكتل chdir
، ولكن سيُطلَق خطأٌ في البرامج ذات الخيوط المتعددة (Multi-threaded) إذا حاول أحد المهام الفرعية (thread) فتح الكتلة chdir
بينما تعمل مهمة فرعية أخرى على فتح آخر.
البنية العامة
chdir( [ string] ) → 0
chdir( [ string] ) {| path | block } → anObject
المعاملات
string
يحتوي هذا المعامل عنوان مجلد العمل الجديد.
القيمة المعادة
في حال تمرير كتلة، فسيُعاد ناتج تنفيذ هذه الكتلة بعد تمرير مجلد العمل الجديد.
أمثلة
مثال عن استخدام التابع chdir
على المجلد testdir
الذي يحوي ملفين عاديين (config.h
و main.rb
)، والمجلد الأب (..
)، والمجلد نفسه (.
).
Dir.chdir("/var/spool/mail")
puts Dir.pwd
Dir.chdir("/tmp") do
puts Dir.pwd
Dir.chdir("/usr") do
puts Dir.pwd
end
puts Dir.pwd
end
puts Dir.pwd
سينتج عن تنفيذ هذه الشيفرة الناتج التالي:
/var/spool/mail
/tmp
/usr
/tmp
/var/spool/mail
انظر أيضًا
- التابع
getwd
: يعيد مسار مجلد العمل (working directory) الحالي للعملية على شكل سلسلة نصية.