Linux chdir System Call في C

Linux Chdir System Call Fy C



يتم إجراء التغييرات على دليل العمل الحالي للجهاز باستخدام طريقة 'CHDIR'. في مجموعة متنوعة من الظروف ، قد تقرر تغيير مجلد العمل الحالي لجهازك. أو تريد تشغيل برنامج نصي C من مجلد بدلاً من دليل العمل الحالي. وبالتالي ، لتشغيل رمز C المحدد ، يجب عليك تعديل مجلد العمل الحالي. بالإضافة إلى ذلك ، يمكن استخدام طريقة 'getcwd' الخاصة بلغة الترميز C لتحديد وقت تغيير مجلد العمل الحالي بسرعة. الآن ، سنستخدم وظيفة chdir () لـ C في هذه المقالة لتغيير دليل عمل.

المثال 01:

لنبدأ بتشغيل وظيفة chdir () للغة C في نظام التشغيل Linux. لهذا ، عليك التأكد من أن مترجم C مثبت بالفعل في نهايتك. في معظم الحالات ، نميل إلى استخدام مترجم 'gcc' للغة C في نظام التشغيل Kali Linux. للبدء بهذا المثال ، يجب أن يكون لدينا ملف C بامتداد 'c'. أطلقنا عليه اسم p1.c وحاولنا فتحه باستخدام محرر 'nano' لنظام Linux كما هو موضح أدناه.







عندما يتم فتح ملفك في المحرر ، عليك أن تبدأ في الترميز فيه. لقد بدأنا برنامج C الخاص بنا عن طريق إضافة مكتبات الترويسة الرئيسية لـ C والتي تعتبر ضرورية في أي برنامج C. لذلك ، يتم استخدام مكتبات رؤوس stdio.h و unistd.h للتأكد من أن المدخلات والمخرجات القياسية يمكن أن تتدفق داخل البرنامج. تم استخدام رأس unistd.h للاستفادة من بعض وظائف C القياسية المطلوبة لهذا المثال بشكل خاص. الآن ، بدأنا وظيفة برنامج التشغيل الرئيسية () لـ C في هذا الرمز ليتم تشغيلها تلقائيًا عند التنفيذ. تم تعريف 'مسار' متغير مصفوفة نوع الحرف بحجم 100 لأنه يخزن 100 قيمة فقط.



تم استخدام عبارة دالة printf () لطباعة مجلد دليل العمل الحالي لملف C هذا ببساطة باستخدام وظيفة 'getcwd ()'. تستخدم هذه الوظيفة متغير مصفوفة 'المسار' بحجم 100 للحصول على دليل العمل الحالي فيه وتمريره إلى عبارة دالة printf () للعرض. الآن ، حان وقت استخدام وظيفة chdir (). يمكننا تمرير أي نوع من الأحرف لتحديد ما إذا كنا نريد المضي قدمًا في الدليل أو التحرك في الاتجاه الخلفي داخل نفس الدليل.



لذلك ، جربنا الأحرف '..' في عبارة الدالة chdir () للانتقال من دليل العمل الحالي في الاتجاه العكسي ، أي مستوى واحد أسفل دليل العمل الحالي. لاحظ أننا نعمل حاليًا في مجلد المشروع الخاص بدليل العمل الرئيسي 'Linux' لنظام Kali Linux. الآن ، نحن في دليل 'Linux' بدلاً من دليل 'project' بعد استخدام وظيفة 'chdir'. الآن ، جربنا عبارة الدالة 'printf ()' مرة أخرى لعرض دليل العمل الحالي باستخدام وظيفة 'getcwd' فيه. ينتهي برنامجنا ببيان return 0.





بعد حفظ برنامج C هذا ، نحتاج إلى تجميعه باستخدام برنامج التحويل البرمجي 'gcc' الذي قمنا بتكوينه بالفعل في نهايتنا. باستخدام تعليمات مجلس التعاون الخليجي هذه ، قمنا بإنشاء ملف كائن لملف C هذا باسم 'p1.out' باستخدام الخيار –o كما هو موضح أدناه.



الآن ، عند تشغيل ملف الكائن الخاص به في محطة Linux الخاصة بك ، ستحصل أولاً على دليل العمل الذي يستخدمه البرنامج قبل استخدام وظيفة chdir (). بعد استخدام الدالة chdir () ، انتقلنا إلى الدليل الواحد أدناه ويتم عرض هذا الدليل المعين 'home'.

المثال 02:



باستخدام نفس مكتبات العناوين ، بدأنا رمز البرنامج هذا. ضمن الوظيفة () الرئيسية لهذا البرنامج ، استخدمنا تعليمة 'if' باستخدام وظيفة chdir () فيه.

ستتحقق هذه الوظيفة مما إذا كان '/ user' موجودًا في النظام أم لا عن طريق تعيين الشرط '/ user! = 0'. إذا لم يكن الدليل موجودًا في النظام الحالي ، فسيتم استخدام استدعاء وظيفة perror لعرض رسالة الخطأ المعنية ، مثل 'دليل المستخدم غير موجود. لقد استخدمنا عبارة 'if' أخرى باستخدام الدالة chdir () داخلها. الغرض من استخدام وظيفة chdir () هنا هو نفسه أيضًا كما فعلنا في جملة if أعلاه ، والتي هي للتحقق مما إذا كان الدليل موجودًا أم لا باستخدام شرط '/ temp'! = 0. الاختلاف الوحيد هو استخدام اسم دليل جديد '/ temp' بدلاً من '/ user' كما ترى من صورة الرمز أدناه.







إذا لم يكن الدليل / temp موجودًا في النظام ، فإن الوظيفة perror المستخدمة في عبارة 'if' ستلقي رسالة خطأ '/ temp directory غير موجود' كما هو معروض من الصورة أدناه. بعد استخدام كل من عبارات 'if' ، قمنا بإنهاء هذا الرمز بعبارة إرجاع C لـ C. الآن ، انتهى البرنامج. لقد قمنا بحفظ كود C الخاص بنا باستخدام اختصار Ctrl + S قبل تنفيذه.





الآن بعد أن تم حفظ الملف في نظامك ، يتعين علينا تجميع كود C باستخدام برنامج التحويل البرمجي 'gcc' الذي قمنا بتثبيته بالفعل في نهايتنا. باستخدام هذه التعليمات ، قمنا بإنشاء ملف الكائن 'p2.out' باستخدام الخيار –o في التعليمات.





بعد تنفيذ ملف الكائن الذي تم إنشاؤه 'p2.out' بأحرف './' ، علمنا أن كلا الدللين المذكورين في مسار 'chdir' غير موجودين في النظام أو أن الخطأ المعروض في shell يوضح بشكل صحيح.



استنتاج

في هذه المقالة اليوم ، أظهرنا استخدام وظيفة chdir () للغة C في نظام التشغيل Kali Linux. يوضح المثال الأول كيف يمكن استخدام وظيفة chdir () لتغيير دليل عمل ، أي الانتقال من دليل إلى آخر. يوضح المثال الأخير لـ C كيف يمكننا التحقق مما إذا كان دليل العمل الحالي المحدد في مسار chdir () موجودًا أم لا.