Eksempel 1:
Innenfor vårt første eksempel vil vi se på den enkle C -koden for å bruke "RealPath" -funksjonen for å få den virkelige og hele veien til noen filer fra systemets nåværende arbeidskatalog. Vi må bruke totalt 6 grunnleggende overskriftsfiler i starten av denne koden som er inkludert i bruken av nøkkelordet "#include". Noen biblioteker er standardbiblioteker for å bruke inngangsstrømmen i koden, noen er her for å bruke strengverdiene, og noen brukes til å utføre unntakshåndtering. Denne kodens hovedfunksjon () definerer en karaktertype-matrise kalt “Buffer” med en innebygd størrelse på “Path Max” eller 0. Denne matrisen brukes til å lagre den virkelige og fulle banen til noen kataloger.
RealPath () -funksjonen tar “noen FILE.txt ”filnavn med“ buffer ”-arrayen som sendes til det som et argument for å lagre hele banen. En peker "bane" av karaktertypen initialiseres for å peke mot adressen til en "buffer" -variabel som inneholder banen til en fil som er gitt av realpath () -funksjonen.
Her kommer "if-elv" -uttalelsen for å sjekke om vi fikk riktig referanse for filstien, eller om "banen" -pekeren er tom. Hvis den returnerer riktig referanse, brukes Printf -funksjonen til å vise teksten “Den komplette filstien til noen FILE.txt: ”sammen med den virkelige banen til den aktuelle filen. Ellers blir den andre uttalelsen utført og Printf -setningen som brukes i den vil kaste en feil ved å bruke "strerror" -funksjonen, og tar "errno" som et argument. Perror -funksjonen brukes til å vise den samme feilen igjen med "realpath" feilnavnet. For å få feilen, avslutter utgangsfunksjonen til denne koden programmet så snart som mulig. La oss lagre vårt første eksempel og kompilere det for å se resultatene.
Vi bruker GCC -kompilatoren for å kompilere RealPath.C -fil med alternativet -o for å generere objektfilen som heter “RealPath.ut ”innenfor den samme arbeidskatalogen. Denne kommandoen er vellykket, og vi har samme navnobjektfil i hjemmet "SRC" i henhold til utdataene fra "LS" -instruksjonen.
Nå utfører vi objektfilen vi nettopp opprettet med "./”Tegn i samme arbeidskatalog. Utgangen fra denne kommandoen viser oss den komplette banen for denne spesielle filen som starter fra rotmappen som “/Home/Linux/SRC/SomeFile.tekst".
Eksempel 2:
La oss komme i gang med et annet eksempel for å bruke RealPath () -funksjonen for å få den virkelige banen til noen filer. Innenfor denne C -koden la vi til de samme 6 topptekstfilene med nøkkelordet "#include". Etter det initialiseres hovedfunksjonen ().tekst". En "faktisk bane" -array brukes til å lagre den virkelige banen til "noen FILE.txt ”-fil med“ +1 ”for å hente banen til en fil nevnt etter den andre“/”-tegn. En annen "PTR" -peker av karaktertypen er definert.
Vi passerer koblingssti -pekervariabelen og den faktiske banearrayen til RealPath () -funksjonen for å få hele banen til “/SRC/noen FILE.txt ”til" faktiske bane "-arrayen. Det returnerte resultatet lagres til "PTR" -pekervariabelen. Innenfor "if" -delen, hvis "PTR" returnerer resultatet av realpath () -funksjonen som inneholder noe referansenummer, viser Printf -setningen den faktiske banen via den faktiske banen -matrisen. Ellers utføres den andre delen av denne koden og genererer en feil via bruk av strerrorfunksjonen ved bruk av "Errno" -variabelen som et argument. Utgangsfunksjonen er å avslutte dette programmet.
Vi kompilerte denne C -koden med GCC -kompilatoren og opprettet sin “RealPath1.ut ”objektfil foran av -o -alternativet.
Etter å ha kjørt objektfilen sin med “./”Karakter, vi fikk feilen fordi vi ikke har gitt riktig format på filstien“/SRC/noen File.tekst".
La oss oppdatere koden igjen for å unngå denne feilen kort tid etter å ha utført objektfilen. Vi oppdaterer den første linjen innen hovedfunksjonen,. Karaktertypen Pointer “Link Path” som inneholder den spesifikke filen med en mappe nedenfor i den er oppdatert. Nå legger vi til navnet på en “noen file.txt ”-filen som ligger i den nåværende arbeidskatalogen“ SRC ”i stedet for“/SRC/noen FILE.txt ”bane til arbeidskatalogmappen. Resten av koden brukes uten noen endring. Lagre og kjør denne koden for å se resultatene.
Etter å ha sammenstilt denne C -filen med GCC -kompilatoren og opprettet sin “RealPath1.ut ”objektfil med -o -objektet, den er klar til å bli utført.
Etter utførelsen av C -objektfilen, den virkelige og fulle banen til den spesifikke filen “Somefile.txt ”vises på terminalskjermen.
Konklusjon
Denne artikkelen handler om bruken av RealPath -metoden til POSIX C -biblioteket for å vise den virkelige og fulle banen til en spesifikk fil. For dette prøvde vi de to C -eksemplene i Kali Linux -plattformen. Innenfor eksemplene våre så vi på hvordan denne funksjonen reagerer på et enkelt filnavn eller med en bestemt bane.