Системски позив за Линук цхдир у Ц

Sistemski Poziv Za Linuk Chdir U C



Промене тренутног радног директоријума уређаја се врше коришћењем „ЦХДИР“ методе. У различитим околностима, можете одлучити да промените тренутну радну фасциклу свог уређаја. Или желите да покренете Ц скрипту из фасцикле уместо вашег садашњег радног директоријума. Сходно томе, да бисте покренули тај специфични Ц код, морате да измените своју садашњу радну фасциклу. Поред тога, метода „гетцвд“ језика за кодирање Ц може се користити за брзо одређивање када се тренутна радна фасцикла променила. Сада ћемо користити цхдир() функцију Ц у овом чланку да променимо радни директоријум.

Пример 01:

Почнимо са радом цхдир() функције Ц у оперативном систему Линук. За ово, морате бити прилично сигурни да је компајлер Ц већ монтиран на вашем крају. У већини случајева имамо тенденцију да користимо „гцц“ компајлер Ц у нашем Кали Линук оперативном систему. За почетак са овим примером, морамо имати Ц датотеку са екстензијом „ц“. Назвали смо га п1.ц и покушали да га отворимо помоћу „нано” едитора за Линук као што је приказано у наставку.







Када се ваш фајл отвори у уређивачу, морате да почнете да кодирате у њему. Наш Ц програм смо започели додавањем главних библиотека за заглавља језика Ц које су неопходне у било ком Ц програму. Стога се библиотеке заглавља стдио.х и унистд.х користе да би се осигурало да стандардни улаз и излаз могу да тече унутар програма. Заглавље унистд.х је коришћено да би се искористиле неке стандардне функције Ц које су посебно потребне за овај пример. Сада смо покренули главну () функцију драјвера Ц у овом коду да се покреће аутоматски при извршавању. Променљива низа карактера „патх” је дефинисана са величином од 100 јер чува само 100 вредности.



Наредба функције принтф() је коришћена да једноставно одштампа тренутну фасциклу радног директоријума ове Ц датотеке помоћу функције „гетцвд()“. Ова функција користи променљиву низа „путања“ величине 100 да добије тренутни радни директоријум у њему и проследи га наредби функције принтф() за приказ. Сада је време да користите функцију цхдир(). Можемо да проследимо било коју врсту знакова да одредимо да ли желимо да се крећемо напред у директоријуму или да се крећемо уназад у оквиру истог директоријума.



Дакле, покушали смо да се знакови „..” у функцији цхдир() помере из тренутног радног директоријума у ​​смеру уназад, тј. један ниво испод тренутног радног директоријума. Имајте на уму да тренутно радимо у директоријуму пројекта нашег главног „Линук“ радног директоријума Кали Линук система. Сада смо у директоријуму „Линук“ уместо у директоријуму „пројект“ након коришћења функције „цхдир“. Сада смо још једном покушали са наредбом функције „принтф()“ да прикажемо тренутни радни директоријум користећи функцију „гетцвд“ у њему. Наш програм се завршава наредбом ретурн 0.





Након што сачувамо овај Ц програм, потребно је да га компајлирамо помоћу компајлера „гцц“ који смо већ конфигурисали на нашем крају. Користећи ову гцц инструкцију, креирали смо објектну датотеку ове Ц датотеке под називом „п1.оут“ користећи опцију –о као што је приказано испод.



Сада, када покренете његову објектну датотеку у свом Линук терминалу, прво ћете добити радни директоријум који користи програм пре употребе функције цхдир(). Након употребе функције цхдир(), прешли смо на један директоријум испод и тај одређени директоријум „хоме“ је приказан.

Пример 02:



Користећи исте библиотеке заглавља, покренули смо овај програмски код. Унутар функције маин() овог програма користили смо наредбу „иф“ користећи функцију цхдир() у њој.

Ова функција ће проверавати да ли “/усер” постоји у систему или не постављањем услова “/усер!=0”. Ако директоријум не постоји у тренутном систему, позив функције перрор ће се користити за приказ одговарајуће поруке о грешци, тј. „кориснички директоријум не постоји. Користили смо још једну наредбу „иф“ користећи функцију цхдир() у њој. Сврха коришћења функције цхдир() овде је такође иста као што смо урадили у горњој иф наредби, која служи за проверу да ли директоријум постоји или не користећи услов “/темп”!=0. Једина разлика је употреба новог имена директоријума „/темп“ уместо „/усер“ као што можете видети на слици кода испод.







Ако директоријум /темп не постоји у систему, функција перрор која се користи у изјави „иф“ ће избацити поруку о грешци „/темп директоријум не постоји“ као што је приказано на слици испод. Након употребе обе изјаве „иф“, овај код завршавамо са Ц-овом повратном 0 наредбом. Сада је програм завршен. Чували смо наш Ц код користећи Цтрл+С пречицу пре његовог извршења.





Сада када је датотека сачувана у вашем систему, морамо да компајлирамо Ц код са 'гцц' компајлером који смо већ монтирали на нашем крају. Користећи ову инструкцију, креирали смо њену објектну датотеку „п2.оут“ користећи опцију –о у инструкцији.





Након што смо извршили креирану објектну датотеку „п2.оут“ са знаковима „./“, сазнали смо да оба директоријума поменута у путањи „цхдир“ не постоје у систему или је грешка приказана на љусци демонстрирала то исправно.



Закључак

У овом данашњем чланку, демонстрирали смо употребу функције цхдир() Ц у Кали Линук оперативном систему. Први пример илуструје како се функција цхдир() може користити за промену радног директоријума, тј. прелазак из једног директоријума у ​​други. Последњи пример Ц показује како можемо да проверимо да ли тренутни радни директоријум наведен у путањи цхдир() постоји или не.