الفرق بين المراجعتين لصفحة: «Ruby/Dir/chdir»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>chdir</code> الخاص بالصنف <code>Dir</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ru...' |
جميل-بيلوني (نقاش | مساهمات) ط مراجعة وتدقيق |
||
(4 مراجعات متوسطة بواسطة مستخدم واحد آخر غير معروضة) | |||
سطر 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] ) {| path | block } → anObject | |||
</syntaxhighlight> | </syntaxhighlight> | ||
==المعاملات== | |||
== | ===<code>string</code>=== | ||
يحتوي هذا المعامل عنوان مجلد العمل الجديد. | |||
==القيمة المعادة== | |||
== أمثلة == | في حال تمرير كتلة، فسيُعاد ناتج تنفيذ هذه الكتلة بعد تمرير مجلد العمل الجديد. | ||
==أمثلة== | |||
Dir | مثال عن استخدام التابع <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") | |||
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 | |||
</syntaxhighlight>سينتج عن تنفيذ هذه الشيفرة الناتج التالي:<syntaxhighlight lang="text"> | |||
/var/spool/mail | |||
/tmp | |||
/usr | |||
/tmp | |||
/var/spool/mail | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== | ==انظر أيضًا== | ||
* | *التابع <code>[[Ruby/Dir/getwd|getwd]]</code>: يعيد مسار مجلد العمل (working directory) الحالي للعملية على شكل سلسلة نصية. | ||
==مصادر== | |||
== مصادر == | *[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- |
المراجعة الحالية بتاريخ 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) الحالي للعملية على شكل سلسلة نصية.