Linuxi chdir System Call C-s

Linuxi Chdir System Call C S



Seadme praeguse töökataloogi muudatused tehakse “CHDIR” meetodil. Erinevatel asjaoludel võite otsustada muuta oma seadme praegust töökausta. Või soovite käivitada C-skripti praeguse töökataloogi asemel kaustast. Järelikult peate selle konkreetse C-koodi käitamiseks muutma oma praegust töökausta. Lisaks saab kasutada kodeerimiskeele C meetodit getcwd, et kiiresti kindlaks teha, millal praegune töökaust on muutunud. Nüüd kasutame selles artiklis C funktsiooni chdir() töökataloogi muutmiseks.

Näide 01:

Alustame C funktsiooni chdir() tööst Linuxi operatsioonisüsteemis. Selleks peate veenduma, et C kompilaator on teie otsa juba ühendatud. Enamasti kasutame oma Kali Linuxi operatsioonisüsteemis C kompilaatorit 'gcc'. Selle näitega alustamiseks peab meil olema C-fail laiendiga 'c'. Panime sellele nimeks p1.c ja proovisime seda avada Linuxi nanoredaktoriga, nagu allpool näidatud.







Kui teie fail redaktoris avatakse, peate hakkama selles kodeerima. Oleme alustanud oma C-programmi, lisades C peamised päiseteegid, mis on igas C-programmis kohustuslikud. Seetõttu kasutatakse päiseteeke stdio.h ja unistd.h tagamaks, et standardne sisend ja väljund saaksid programmi sees voolata. Päist unistd.h on kasutatud C mõningate standardsete funktsioonide kasutamiseks, mis on eriti selle näite jaoks vajalikud. Nüüd oleme käivitanud selles koodis C-draiveri funktsiooni main(), et see käivitamisel automaatselt käivituks. Märgi tüüpi massiivimuutuja “path” on defineeritud suurusega 100, kuna see salvestab ainult 100 väärtust.



Funktsiooni printf() lauset on kasutatud selle C-faili praeguse töökataloogi kausta lihtsalt välja printimiseks, kasutades funktsiooni “getcwd()”. See funktsioon kasutab massiivimuutujat 'path' suurusega 100, et hankida sellesse praegune töökataloog ja edastada see kuvamiseks funktsiooni printf() lausele. Nüüd on aeg kasutada funktsiooni chdir (). Saame edastada mis tahes märke, et määrata, kas tahame liikuda kataloogis edasi või liikuda samas kataloogis tagasi.



Seega oleme proovinud funktsiooni chdir() avalduses olevaid märke '..' liikuda praegusest töökataloogist tagasisuunas, st ühe taseme võrra praegusest töökataloogist madalamale. Pange tähele, et praegu oleme töötanud Kali Linuxi süsteemi peamise 'Linux' töökataloogi projektikaustas. Nüüd oleme pärast funktsiooni 'chdir' kasutamist kataloogis 'Linux', mitte 'projekti' kataloogis. Nüüd proovisime veel kord funktsiooni 'printf()' avaldust, et kuvada praegune töökataloog, kasutades selles funktsiooni 'getcwd'. Meie programm lõpeb lausega return 0.





Pärast selle C-programmi salvestamist peame selle kompileerima 'gcc' kompilaatori abil, mille oleme juba konfigureerinud. Selle gcc juhise abil oleme loonud selle C-faili objektifaili nimega 'p1.out', kasutades suvandit –o, nagu allpool näidatud.



Nüüd, kui käivitate selle objektifaili oma Linuxi terminalis, saate enne funktsiooni chdir() kasutamist kõigepealt programmi kasutatava töökataloogi. Pärast funktsiooni chdir() kasutamist liikusime ühte allolevasse kataloogi ja kuvatakse see konkreetne kataloog “home”.

Näide 02:



Kasutades samu päiseteeke, oleme käivitanud selle programmikoodi. Selle programmi funktsiooni main() raames oleme kasutanud 'if'-lauset, kasutades selles funktsiooni chdir().

See funktsioon kontrollib, kas '/user' on süsteemis olemas või mitte, määrates tingimuse '/user!=0'. Kui kataloogi praeguses süsteemis ei eksisteeri, kasutatakse veafunktsiooni kutset vastava veateate kuvamiseks, st 'kasutajakataloogi pole olemas. Oleme kasutanud teist 'if'-lauset, kasutades selles funktsiooni chdir (). Funktsiooni chdir() kasutamise eesmärk on siin samuti sama, mis ülaltoodud if-lauses, mille eesmärk on kontrollida, kas kataloog on olemas või mitte, kasutades tingimust “/temp”!=0. Ainus erinevus on uue katalooginime '/temp' kasutamine '/user' asemel, nagu näete allolevalt koodipildilt.







Kui /temp kataloogi süsteemis ei ole, annab lauses 'if' kasutatav veafunktsioon veateate '/temp kataloogi ei eksisteeri', nagu on näidatud alloleval pildil. Pärast mõlema „if”-lause kasutamist oleme selle koodi lõpetanud C-i return 0-lausega. Nüüd on programm läbi. Oleme oma C-koodi enne selle käivitamist salvestanud kiirklahviga Ctrl+S.





Nüüd, kui fail on teie süsteemi salvestatud, peame kompileerima C-koodi 'gcc' kompilaatoriga, mille oleme juba oma otsa ühendanud. Seda juhist kasutades oleme loonud selle objektifaili 'p2.out', kasutades juhendis olevat valikut –o.





Pärast loodud objektifaili 'p2.out' käivitamist tähemärkidega './' saime teada, et mõlemat 'chdir' teel mainitud kataloogi pole süsteemis olemas või kestis kuvatud tõrge on näidanud seda korralikult.



Järeldus

Tänases artiklis oleme näidanud C funktsiooni chdir() kasutamist Kali Linuxi operatsioonisüsteemis. Kõige esimene näide illustreerib, kuidas funktsiooni chdir() saab kasutada töökataloogi muutmiseks, st ühest kataloogist teise liikumiseks. C viimane näide näitab, kuidas saame kontrollida, kas chdir() teele määratud praegune töökataloog on olemas või mitte.