קריאת מערכת Linux chdir ב-C

Qry T M Rkt Linux Chdir B C



שינויים בספריית העבודה הנוכחית של המכשיר מתבצעים בשיטת 'CHDIR'. במגוון נסיבות, ייתכן שתחליט לשנות את תיקיית העבודה הנוכחית של המכשיר שלך. או שאתה רוצה להריץ סקריפט C מתיקיה במקום ספריית העבודה הנוכחית שלך. כתוצאה מכך, כדי להפעיל את קוד ה-C הספציפי הזה, עליך לשנות את תיקיית העבודה הנוכחית שלך. בנוסף, ניתן להשתמש בשיטת 'getcwd' של שפת הקידוד C כדי לקבוע במהירות מתי תיקיית העבודה הנוכחית השתנתה. כעת, נשתמש בפונקציה chdir() של C במאמר זה כדי לשנות ספריית עבודה.

דוגמה 01:

נתחיל בעבודה של הפונקציה chdir() של C במערכת ההפעלה לינוקס. בשביל זה, אתה צריך לוודא די בטוח שהמהדר של C כבר מותקן בקצה שלך. ברוב המקרים, אנו נוטים להשתמש במהדר 'gcc' של C במערכת ההפעלה Kali Linux שלנו. כדי להתחיל בדוגמה זו, עלינו להיות בעל קובץ C עם הסיומת 'c'. קראנו לו p1.c וניסינו לפתוח אותו עם עורך 'ננו' של לינוקס כפי שמוצג להלן.







כאשר הקובץ שלך נפתח בעורך, עליך להתחיל לקודד בו. התחלנו את תוכנית C שלנו על ידי הוספת ספריות הכותרות הראשיות של C שהן רכיבי החובה בכל תוכנית C. לכן, ספריות הכותרות stdio.h ו-unistd.h משמשות כדי לוודא שהקלט והפלט הסטנדרטיים יכולים לזרום בתוך התוכנית. הכותרת unistd.h שימשה כדי לעשות שימוש בכמה פונקציות סטנדרטיות של C שנדרשות עבור דוגמה זו במיוחד. כעת, התחלנו את פונקציית מנהל ההתקן main() של C בקוד זה כדי לרוץ אוטומטית בביצוע. משתנה מערך סוג התווים 'נתיב' הוגדר בגודל של 100 מכיוון שהוא מאחסן רק 100 ערכים.



נעשה שימוש במשפט הפונקציה printf() פשוט כדי להדפיס את תיקיית ספריית העבודה הנוכחית של קובץ C זה באמצעות הפונקציה 'getcwd()'. פונקציה זו משתמשת במשתנה המערך 'path' בגודל 100 כדי לקבל את ספריית העבודה הנוכחית בו ולהעביר אותה למשפט הפונקציה printf() להצגה. עכשיו, הגיע הזמן להשתמש בפונקציה chdir() . אנחנו יכולים להעביר כל סוג של תווים כדי לציין אם אנחנו רוצים להתקדם בספרייה או לנוע בכיוון אחורה בתוך אותה ספרייה.



אז, ניסינו את התווים '..' במשפט הפונקציה chdir() כדי לעבור מספריית העבודה הנוכחית בכיוון אחורה, כלומר רמה אחת מתחת לספריית העבודה הנוכחית. שימו לב שכרגע, עבדנו בתיקיית הפרויקט של ספריית העבודה הראשית שלנו 'Linux' של מערכת Kali Linux. כעת, אנו נמצאים בספריית 'Linux' במקום ספריית 'פרויקט' לאחר שימוש בפונקציית 'chdir'. כעת, ניסינו שוב את הצהרת הפונקציה 'printf()' כדי להציג את ספריית העבודה הנוכחית באמצעות הפונקציה 'getcwd' בה. התוכנית שלנו מסתיימת בהצהרת החזר 0.





לאחר שמירת תוכנית C זו, עלינו לקמפל אותה באמצעות המהדר 'gcc' שכבר הגדרנו בקצה שלנו. באמצעות הוראת gcc זו, יצרנו קובץ אובייקט של קובץ C זה בשם 'p1.out' באמצעות אפשרות -o כפי שמוצג להלן.



כעת, כאשר אתה מפעיל את קובץ האובייקט שלו במסוף הלינוקס שלך, תקבל תחילה את ספריית העבודה שבה משתמשת התוכנית לפני השימוש בפונקציה chdir() . לאחר השימוש בפונקציה chdir() עברנו לספרייה האחת למטה והספרייה הספציפית הזו 'home' מוצגת.

דוגמה 02:



באמצעות אותן ספריות כותרות ממש, התחלנו את קוד התוכנית הזה. בתוך הפונקציה main() של תוכנית זו, השתמשנו במשפט 'if' תוך שימוש בפונקציה chdir() בה.

פונקציה זו תבדוק אם ה-'/user' קיים במערכת או לא על-ידי הגדרת התנאי '/user!=0'. אם הספרייה לא קיימת במערכת הנוכחית, הקריאה לפונקציית השגיאה תשמש להצגת הודעת השגיאה המתאימה, כלומר 'ספריית המשתמש לא קיימת. השתמשנו במשפט 'if' אחר באמצעות הפונקציה chdir() שבתוכה. מטרת השימוש בפונקציה chdir() כאן היא גם זהה לזו שעשינו במשפט if לעיל, שהיא לבדיקת האם הספרייה קיימת או לא באמצעות התנאי '/temp'!=0. ההבדל היחיד הוא השימוש בשם ספרייה חדש '/temp' במקום '/user' כפי שניתן לראות מתמונת הקוד למטה.







אם ספריית /temp לא קיימת במערכת, פונקציית השגיאה המשמשת בהצהרת 'if' תשליך הודעת שגיאה '/temp directory not exist' כפי שמוצגת מהתמונה למטה. לאחר השימוש בשני הצהרות ה-'if', סיימנו את הקוד הזה במשפט החזר 0 של C. עכשיו, התוכנית הסתיימה. שמרנו את קוד ה-C שלנו באמצעות קיצור הדרך Ctrl+S לפני ביצועו.





כעת, לאחר שהקובץ נשמר במערכת שלך, עלינו לקמפל את קוד ה-C עם המהדר 'gcc' שכבר הרכבנו בקצה שלנו. באמצעות הוראה זו, יצרנו את קובץ האובייקט שלו 'p2.out' באמצעות האפשרות -o בהוראה.





לאחר ביצוע קובץ האובייקט שנוצר 'p2.out' עם התווים './', למדנו ששתי הספריות המוזכרות בנתיב של 'chdir' אינן קיימות במערכת או שהשגיאה המוצגת במעטפת הדגימה את זה כמו שצריך.



סיכום

בתוך מאמר זה היום, הדגמנו את השימוש בפונקציית chdir() של C במערכת ההפעלה Kali Linux. הדוגמה הראשונה ממחישה כיצד ניתן להשתמש בפונקציה chdir() כדי לשנות ספריית עבודה, כלומר לעבור מספריה אחת לאחרת. הדוגמה האחרונה של C מדגימה כיצד אנו יכולים לבדוק אם ספריית העבודה הנוכחית שצוינה בנתיב של chdir() קיימת או לא.