Linux chdir System Call C

Linux Chdir System Call C



Izmaiņas ierīces pašreizējā darba direktorijā tiek veiktas, izmantojot “CHDIR” metodi. Dažādos apstākļos varat izlemt mainīt ierīces pašreizējo darba mapi. Vai arī vēlaties palaist C skriptu no mapes, nevis pašreizējā darba direktorija. Līdz ar to, lai palaistu šo konkrēto C kodu, jums ir jāmaina pašreizējā darba mape. Turklāt kodēšanas valodas C metodi getcwd var izmantot, lai ātri noteiktu, kad pašreizējā darba mape ir mainījusies. Tagad mēs šajā rakstā izmantosim C funkciju chdir (), lai mainītu darba direktoriju.

01. piemērs:

Sāksim ar C funkcijas chdir () darbību operētājsistēmā Linux. Lai to izdarītu, jums ir jāpārliecinās, ka C kompilators jau ir uzstādīts jūsu galā. Vairumā gadījumu mēs savā Kali Linux operētājsistēmā mēdzam izmantot C kompilatoru “gcc”. Lai sāktu ar šo piemēru, mums ir jābūt C failam ar paplašinājumu “c”. Mēs to nosaucām par p1.c un mēģinājām to atvērt, izmantojot Linux “nano” redaktoru, kā parādīts tālāk.







Kad jūsu fails tiek atvērts redaktorā, jums jāsāk tajā kodēt. Mēs esam sākuši savu C programmu, pievienojot galvenās C galvenes bibliotēkas, kas ir obligātas jebkurā C programmā. Tāpēc stdio.h un unistd.h galvenes bibliotēkas tiek izmantotas, lai pārliecinātos, ka standarta ievade un izvade var plūst programmā. Unistd.h galvene ir izmantota, lai izmantotu dažas C standarta funkcijas, kas īpaši nepieciešamas šim piemēram. Tagad šajā kodā esam sākuši C galvenā () draivera funkciju, lai tā tiktu automātiski izpildīta izpildes laikā. Rakstzīmju tipa masīva mainīgais “path” ir definēts ar lielumu 100, jo tas saglabā tikai 100 vērtības.



Funkcijas printf() priekšraksts ir izmantots, lai vienkārši izdrukātu šī C faila pašreizējo darba direktoriju mapi, izmantojot funkciju “getcwd ()”. Šī funkcija izmanto masīva mainīgo “path” ar izmēru 100, lai tajā iegūtu pašreizējo darba direktoriju un nodotu to funkcijas printf() priekšrakstam parādīšanai. Tagad ir pienācis laiks izmantot funkciju chdir (). Mēs varam nodot jebkura veida rakstzīmes, lai norādītu, vai mēs vēlamies virzīties uz priekšu direktorijā vai atpakaļ virzienā tajā pašā direktorijā.



Tātad, mēs esam mēģinājuši izmantot “..” rakstzīmes funkcijas chdir () priekšrakstā, lai pārvietotos no pašreizējā darba direktorija atpakaļ virzienā, t.i., vienu līmeni zem pašreizējā darba direktorija. Ņemiet vērā, ka šobrīd mēs strādājam Kali Linux sistēmas galvenā “Linux” darba direktorija projektu mapē. Tagad pēc funkcijas “chdir” izmantošanas mēs atrodamies direktorijā “Linux”, nevis direktorijā “projekts”. Tagad mēs vēlreiz izmēģinājām funkcijas “printf ()” paziņojumu, lai parādītu pašreizējo darba direktoriju, izmantojot tajā esošo funkciju “getcwd”. Mūsu programma beidzas ar atgriešanās 0 paziņojumu.





Pēc šīs C programmas saglabāšanas mums tā ir jākompilē, izmantojot “gcc” kompilatoru, kuru jau esam konfigurējuši. Izmantojot šo gcc instrukciju, mēs esam izveidojuši šī C faila objekta failu ar nosaukumu “p1.out”, izmantojot opciju –o, kā parādīts tālāk.



Tagad, palaižot tā objekta failu savā Linux terminālī, vispirms iegūsit programmas izmantoto darba direktoriju pirms funkcijas chdir () izmantošanas. Pēc funkcijas chdir () izmantošanas mēs pārgājām uz vienu zemāk esošo direktoriju, un tiek parādīts konkrētais direktorijs “mājas”.

02. piemērs:



Izmantojot tās pašas galvenes bibliotēkas, mēs esam sākuši šo programmas kodu. Šīs programmas galvenajā () funkcijā mēs esam izmantojuši paziņojumu “if”, izmantojot tajā esošo funkciju chdir ().

Šī funkcija pārbaudīs, vai “/lietotājs” sistēmā pastāv vai nē, iestatot nosacījumu “/user!=0”. Ja pašreizējā sistēmā direktorija nepastāv, kļūdas funkcijas izsaukums tiks izmantots, lai parādītu attiecīgo kļūdas ziņojumu, t.i., “lietotāja direktorijs neeksistē. Mēs esam izmantojuši citu “if” paziņojumu, izmantojot tajā esošo funkciju chdir (). Funkcijas chdir() izmantošanas mērķis arī šeit ir tāds pats kā iepriekš minētajā if priekšrakstā, kas ir paredzēts, lai pārbaudītu, vai direktorijs pastāv vai ne, izmantojot nosacījumu “/temp”!=0. Vienīgā atšķirība ir jauna direktorija nosaukuma “/temp” izmantošana, nevis “/user”, kā redzams tālāk esošajā koda attēlā.







Ja /temp direktorija sistēmā nepastāv, kļūdas funkcija, kas tiek izmantota priekšrakstā “if”, parādīs kļūdas ziņojumu “/temp direktorijs neeksistē”, kā parādīts tālāk esošajā attēlā. Pēc abu “if” priekšrakstu izmantošanas mēs šo kodu beidzām ar C atgriešanās 0 paziņojumu. Tagad programma ir beigusies. Pirms tā izpildes mēs saglabājām savu C kodu, izmantojot īsinājumtaustiņu Ctrl+S.





Tagad, kad fails ir saglabāts jūsu sistēmā, mums ir jākompilē C kods ar “gcc” kompilatoru, kuru jau esam uzstādījuši savā galā. Izmantojot šo instrukciju, mēs esam izveidojuši tā objekta failu “p2.out”, izmantojot instrukcijas opciju –o.





Pēc izveidotā objekta faila “p2.out” izpildīšanas ar rakstzīmēm “./” mēs uzzinājām, ka sistēmā neeksistē abi “chdir” ceļā minētie direktoriji vai arī tika parādīta čaulā parādītā kļūda. to pareizi.



Secinājums

Šajā šodienas rakstā mēs esam parādījuši C funkcijas chdir () izmantošanu operētājsistēmā Kali Linux. Pats pirmais piemērs parāda, kā funkciju chdir () var izmantot, lai mainītu darba direktoriju, t.i., pārietu no viena direktorija uz citu. Pēdējais C piemērs parāda, kā mēs varam pārbaudīt, vai pašreizējais darba direktorijs, kas norādīts chdir () ceļā, pastāv vai nav.