Jobber med getenv i C
I økosystemet til Linux kan miljøvariabelen settes lokalt eller globalt. Denne variabelen gir funksjonen til sluttbrukeren. Som avgjør hvordan applikasjonene vil kjøres på Linux -operativsystemet. Det er mange måter å kategorisere miljøvariabelen på, for eksempel miljøvariabelen kan også omtales som en skallvariabel enten opprettet på globalt eller lokalt nivå.
GetEnv () fungerer på en slik måte at den søker i miljøvariabelen dynamisk på kjøretid i hver oppføring sammen med det spesifikke navnet. Når den blir funnet, returnerer den en peker til verdien av en variabel. C -kildekoden eller programmet må skrives på en slik måte at den ikke endrer strengen som er adressert av pekeren og returneres av GetEnv (). Videre lager C -programmeringsspråket ikke en funksjon som angir eller endrer miljøvariablene eller noen annen liste eller informasjon brukeren kan trenge.
Erklæring om getEnv () -funksjonen
Char *getenv (const char *navn)Returverdi
GetEnv () -funksjonen returnerer pekeren til C-String med en verdi av miljøvariabelen som tilsvarer env_var. En nullpeker returneres når ingen kamp blir funnet relevant for forespørselen. Disse miljøvariablene er nyttige for alle prosessene i det nåværende systemet, enten i multiprosessering. Disse variablene inneholder informasjon som baner for noen kjørbare filer, en hjemmekatalog eller en temp -katalog opprettet for å lagre noen midlertidige filer.
Funksjoner ved getEnv ()
Miljøvariablene finnes på systemnivå. Det er mange måter å bruke miljøvariablene i Linux -operativsystemet.
Env: Denne kommandoen lar brukeren utføre programmet i det tilpassede miljøet. Når Env -kommandoen brukes uten argumenter som parametere, vil den vise tilgjengelige alternativene for variabler i systemet.
PRETTENV: Denne kommandoen fungerer for å vise alle variablene i miljøsystemet.
Sett: Denne kommandoen fungerer for å angi miljøvariabelen i Linux -operativsystemet. Når vi bruker denne kommandoen uten argumenter, skriver den ut alle de variable alternativene, skallvariablene og funksjonene i systemet.
Eksport: Eksportkommandoen setter miljøvariablene. Men det er midlertidig fordi det bare varer når økten varer. Hvis økten er logget ut eller lukket, er variabelen ikke mer.
All beskrivelse angående GetEnv er nevnt i håndboken til Linux:
$ mann getenv
Dette vil føre deg til en manuell side.
Vi vil dele noen eksempler som vil vise implementeringen av GetEnv () -funksjonen i C -programmeringsspråket i Linux -miljøet. For alle eksemplene vil vi bruke en tekstredigerer av Linux for å skrive koder og Linux -terminalen for å implementere dem.
Eksempel 1
I kildekoden bruker vi et bibliotek for å sikre bruken av denne funksjonen for å få tilgang til miljøet. Ved å bruke GetEnv () -funksjonen i hovedprogrammet, vil vi få banen, hjemmet og roten til det nåværende systemet.
For implementeringsformålet kan du opprette en dummy -bruker i et Linux -miljø. Men for å gjøre det presist, bruker vi standard en:
Printf ("sti: %sn", getEnv ("sti"));Et lignende format brukes til de to andre funksjonene Hjemme- og rotsti:
Lagre tekstfilen med utvidelsen av C. Hvis informasjonen om miljøet vil være tilgjengelig, vil den vises. Imidlertid, hvis det ikke blir funnet, vil null bli returnert.
Gå til Linux -terminalen og bruk en GCC -kompilator. Denne kompilatoren brukes til å kompilere koden og deretter utføre den:
$ gcc -o getenv getenv.c
$ ./getenv
Getenv.C er navnet på en fil, og "-o" brukes til å lagre utdataene i en bestemt fil som er nevnt i kommandoen. Utgangen vil vise hele banen til den gjeldende filen og hjemmekatalognavnet. Ettersom roten er ukjent, så er den erklært null.
Eksempel 2
Det forrige eksemplet var ganske enkelt når det gjelder argumenter. Dette eksemplet omhandler pekeren som brukes for å få tilgang til informasjon om miljøet. I hovedprogrammet inneholder parametrene argumentet og en peker. For Loop brukes til å vise all informasjonen som manualen viser konsumert tid. Hvert minnespor vil være tilgjengelig, og informasjonen vil bli hentet. Løkken varer til indeksverdien ikke er null:
Se den resulterende verdien på samlingen:
Ved utførelse vil du se at hver mindre detalj fra starten av å lage miljøet vises. Du kan se at Session Manager vil vise detaljene i den virtuelle boksekonfigurasjonen. Denne informasjonen vil være veldig detaljert som vil ende ved å vise brukernavnet som nevnt i det vedlagte bildet:
Eksempel 3
En annen metode for bruk av getEnv () vises her. En peker vil betjene funksjonen, og returverdien blir lagret i pekeren. Først, introduser en peker i hovedprogrammet. Deretter vil denne pekeren bli brukt med hver informasjon som får funksjon.
STR = GetEnv ("Hjem")) ! = Null);Denne uttalelsen viser at hjemmeveien vil vises til verdien blir null. Det samme gjelder den andre informasjonen. Hver oppnådd verdi vil bli skrevet ut senere. Hjem, bane og loggnavn vises i henhold til standardinformasjonen. Disse refererer alle til miljøvariabelen informasjon. Men i motsetning til dette, er den fjerde brukerens valgdata.
Ved utførelse av koden vil vi se de resulterende verdiene. Resultatene for hjemmebanen vil vise brukernavnet i katalogen. Den andre delen var for miljøets vei. Den tredje linjen viser loggnavnet eller i virkeligheten, brukernavnet. Nå, kom mot brukervalget, den resulterende verdien er ikke til stede, da den ikke blir funnet. Så null blir returnert:
Eksempel 4
Dette eksemplet vil også bare vise banen, men gjennom en annen tilnærming. For det første hentes verdien gjennom funksjonen, og deretter vises den tredje hentet banen ved å bruke en IF-uttalelse for å sjekke om hver informasjon vises til resulteringen i pekeren ikke er null.
Ptr_path = getEnv ("sti");Se nå den resulterende verdien gjennom terminalen. Du vil se banen vises og oppnådd gjennom kildekoden:
Konklusjon
Artikkelen "GetEnv-funksjonsbruk" på C-programmeringsspråk forklares med et par eksempler for å hjelpe sluttbrukeren som brukerhåndbok. Getenv bringer miljøet i form av forskjellige måter. Hver tilnærming forklares som bidrar til å bringe banen, brukernavnet og roten til standardmiljøet til Linux -operativsystemet. Vi håper du fant denne artikkelen nyttig. Sjekk ut flere Linux -hint -artikler for nyttige tips og informasjon.