c shell system programming tutorial with examples
Denne opplæringen gir en detaljert oversikt over C ++ Shell eller system () -anropet som brukes til å påkalle operativsystemkommandoen fra et C ++ - program.
I programvareprogrammeringsverdenen er de fleste av operativsystemets API-er rettet mot C. C ++ språk gir direkte støtte for å ringe C-funksjoner fra C ++ -koden.
Derfor blir C ++ i dette tilfellet også et systemprogrammeringsspråk. C ++ gir en 'system ()' - kommando for å påkalle operativsystemkommandoene fra C / C ++ - programmet.
Med andre ord kan vi si at system () -kommandoen utfører en C ++ shell-kommando. I denne opplæringen vil vi diskutere kjøringen av skallkommandoen eller systemet () i detalj.
=> Utforsk Simple C ++ Training Series her.
Hva du vil lære:
C ++ systemanrop
La oss nå diskutere systemanropet og dets detaljer med eksempler.
Funksjonsprototype: int system (const char * kommando);
Parametere:
command => En C-streng som inneholder kommandoen som skal utføres.
Hvis en nullpeker sendes, blir det bare gjort en sjekk for kommandoprosessoren.
Returverdi: Returnerer en int-verdi. Verdien som returneres avhenger av om C-stilstrengen er spesifisert som et argument, eller om en nullpeker er spesifisert.
- Null Pointer => Hvis nullpekeren er spesifisert, returnerer den en verdi som ikke er null hvis kommandoprosessoren er tilgjengelig og ellers null.
- Kommandoen spesifisert => Når kommandoen er spesifisert, returneres vanligvis statuskoden, men verdien som returneres avhenger av implementeringen av systemet og biblioteket.
Beskrivelse: Systemkommandoen utfører en kommando som leveres som et argument. Verdien som returneres ved å utføre kommandoen er vanligvis avhengig av system- og bibliotekimplementering. Hvis en nullpeker sendes i stedet for en kommando, sjekker denne samtalen bare om kommandoprosessoren er tilgjengelig eller ikke.
Samtalen returnerer en verdi som ikke er null hvis kommandoprosessoren er tilgjengelig og ellers null.
Ved hjelp av system () kan vi kjøre nesten hvilken som helst kommando forutsatt at operativsystemet tillater det. For eksempel, vi kan kjøre systemet (“dir”) eller systemet (“ls”) med like letthet. Faktisk kan vi til og med påkalle GCC-kompilatoren fra programmet vårt.
Nedenfor er noen eksempler på systemkommandoer som brukes i C ++ for å utføre C ++ shell-kommandoene.
beste ddos-metoden for hjemmeforbindelser
Eksempel 1:
Dette eksemplet viser systemkommandodemonstrasjonen med en nullpeker som argument.
#include #include using namespace std; int main () { int i; cout<< 'Check if command processor is available...'< Produksjon:

I programmet ovenfor sjekker vi først om kommandoprosessoren er tilgjengelig ved å overføre null til systemanropet. Hvis kommandoprosessoren er tilgjengelig, utfører vi dir-kommandoen. Hvis kommandoprosessoren ikke er tilgjengelig, avslutter vi programmet med en feil.
Eksempel 2:
Eksemplet nedenfor viser kjøringen av ls-kommandoen der utgangen ledes til en tekstfil 'output.txt'. Etter at system () -anropet er utført, skriver vi ut innholdet i output.txt.
testleder intervju spørsmål og svar pdf
#include #include #include int main() { std::system('ls -l >output.txt'); // execute the UNIX command 'ls -l >test.txt' std::cout << std::ifstream('output.txt').rdbuf(); }
Produksjon:

Utgangen fra det ovennevnte programmet er innholdet i filen 'output.txt' som ikke er noe annet enn utdataene fra ls-kommandoen.
Eksempel 3:
C ++ - programmet nedenfor er fortsettelsen av forrige eksempel. Her utfører vi ls-kommandoen som blir omdirigert til output.txt ved hjelp av et systemanrop. Deretter utfører vi et nytt systemanrop med kommandoen “rm” (remove) for å fjerne file output.txt.
Etter dette kjører vi igjen ls-kommandoen, og denne gangen omdirigerer vi utdataene til en annen fil, dvs. text.txt. Til slutt skriver vi ut innholdet i text.txt-filen.
#include #include #include using namespace std; int main() { // execute the UNIX command 'ls -l >output.txt' system('ls -l >output.txt'); cout << ifstream('output.txt').rdbuf(); // execute the UNIX command 'rm output.txt' system('rm output.txt'); cout<<'removed output.txt'<text.txt' cout<<'ls after removing output.txt & creating text.txt'<text.txt'); cout << ifstream('text.txt').rdbuf(); }
Produksjon:

C ++ systempause
Systemkommandoen ('pause') stopper operasjonene midlertidig når de utføres. Systemanropet ('pause') er operativsystemavhengig og utfører følgende trinn:
- Denne samtalen avbryter programmet midlertidig og signaliserer også operativsystemet om å åpne skallet til operativsystemet.
- Operativsystemet tildeler minnet som kommandoen skal utføre.
- Deretter omlokaliserer minnet, går ut av operativsystemet og gjenopptar det suspenderte programmet.
Det følgende programmet viser et eksempel på et systemanrop ('pause').
#include #include using namespace std; int main () { cout << 'Hello World!' << endl; system('pause'); return 0; }
Produksjon:

Som allerede nevnt er system ('pause') samtalen veldig treg og er avhengig av operativsystemet. Trinnene som er nevnt ovenfor er tunge å utføre.
I tillegg kan systemanropene også utgjøre noen sikkerhetsrisikoer. Derfor er vi vanligvis ikke avhengige av systemanropene ('pause') i programmene våre.
I stedet kan vi bruke cin.get for å oppnå samme funksjonalitet som et system ('pause') som vist i programmet nedenfor.
#include #include using namespace std; int main () { cout << 'This is SoftwareTestingHelp.com' << endl; cin.get(); // same as getchar() return 0; }
Produksjon:

Som vist ovenfor kan vi bruke cin.get til å stoppe utgangen midlertidig til vi trykker på en eller annen tast. I motsetning til systemet ('pause') er ikke operativsystemavhengig. Det følger heller ikke trinnene som er utført når vi kjører systemet ('pause').
System mot biblioteksfunksjoner
Systemanropene er avhengige av operativsystemet. De er også veldig treg og tung på ressurser. Biblioteksfunksjoner er ikke OS-avhengige. De er raskere og bruker ikke for mye ressurser eller minne.
De vanligste bruken av systemanrop er for systemkommandoer ('pause') og system ('cls'). Biblioteksfunksjoner er innebygde funksjoner som inneholder funksjoner relatert til matematikk, fil I / O, etc.
Konklusjon
I denne C ++ Shell-opplæringen diskuterte vi forskjellige systemfunksjoner. Vi så eksempler på å sende en nullpeker til systemkommandoen som sjekker om kommandoprosessoren er tilgjengelig eller ikke. Vi diskuterte også systemkommandoen ('pause') og dens alternativer i detalj.
=> Sjekk ALLE C ++ opplæringsprogrammer her.
Anbefalt lesing
- Skalsortering i C ++ med eksempler
- Unix Shell Scripting Tutorial med eksempler
- Unix Shell Loop Typer: Gjør Mens Loop, For Loop, Inntil Loop i Unix
- Unix Shell Script Aritmetic og Boolean Operators Eksempler
- Unix Shell Script-funksjoner med parametere og retur
- Avansert Unix Shell Scripting: Arrays, File and String Test Operators, Special Variables
- C ++ regex Opplæring: Regulære uttrykk i C ++ med eksempler