c shell system programming tutorial with examples
Ta vadnica daje podroben opis lupine C ++ ali klica system (), ki se uporablja za klic ukaza operacijskega sistema iz programa C ++.
V svetu programskega programiranja je večina API-jev operacijskega sistema usmerjena na C. Jezik C ++ zagotavlja neposredno podporo za klicanje funkcij C iz kode C ++.
V tem primeru postane C ++ tudi sistemski programski jezik. C ++ ponuja ukaz “system ()” za priklic ukazov operacijskega sistema iz programa C / C ++.
Z drugimi besedami, lahko rečemo, da ukaz system () izvrši ukaz lupine C ++. V tej vadnici bomo podrobno razpravljali o izvajanju ukaza lupine ali sistema ().
=> Tu raziščite preprosto serijo usposabljanj za C ++.
Kaj se boste naučili:
- C ++ sistemski klici
- Zaustavitev sistema C ++
- Funkcije knjižnice System Vs
- Zaključek
- Priporočeno branje
C ++ sistemski klici
Zdaj pa razpravljajmo o sistemskem klicu in njegovih podrobnostih s primeri.
Prototip funkcije: sistem int (ukaz const char *);
Parametri:
vprašanja in odgovori za intervju za oracle pl / sql
command => Niz C, ki vsebuje ukaz, ki ga je treba izvesti.
Če je predan ničelni kazalec, se opravi samo preverjanje ukaznega procesorja.
Vrnjena vrednost: Vrne vrednost int. Vrnjena vrednost je odvisna od tega, ali je niz sloga C podan kot argument ali je podan ničelni kazalec.
- Ničelni kazalec => Če je podan ničelni kazalnik, vrne vrednost, ki ni nič, če je ukazni procesor na voljo, nič pa drugače.
- Navedeni ukaz => Ko je ukaz podan, se običajno vrne koda stanja, vendar je vrnjena vrednost odvisna od izvajanja sistema in knjižnice.
Opis: Sistemski ukaz izvrši ukaz, priložen kot argument. Vrednost, ki se vrne z izvajanjem ukaza, je običajno odvisna od izvajanja sistema in knjižnice. Če se namesto ukaza posreduje ničelni kazalec, ta klic preprosto preveri, ali je ukazni procesor na voljo ali ne.
Klic vrne vrednost, ki ni nič, če je ukazni procesor na voljo, nič pa drugače.
Z uporabo sistema () lahko zaženemo skoraj vsak ukaz, če operacijski sistem to dovoljuje. Na primer, sistem (“dir”) ali sistem (“ls”) lahko zaženemo z enako lahkoto. Pravzaprav lahko iz našega programa prikličemo celo prevajalnik GCC.
Spodaj je navedenih nekaj primerov sistemskih ukazov, ki se uporabljajo v C ++ za izvajanje ukazov lupine C ++.
Primer 1:
Ta primer prikazuje demonstracijo sistemskega ukaza z ničelnim kazalcem kot argumentom.
#include #include using namespace std; int main () { int i; cout<< 'Check if command processor is available...'< Izhod:

V zgornjem programu najprej preverimo, ali je ukazni procesor na voljo, tako da sistemskemu klicu posredujemo nič. Če je ukazni procesor na voljo, izvedemo ukaz dir. Če ukazni procesor ni na voljo, program zapustimo z napako.
2. primer:
Spodnji primer prikazuje izvedbo ukaza ls, pri katerem je izhodni signal usmerjen v besedilno datoteko 'output.txt'. Po izvedbi sistemskega klica natisnemo vsebino output.txt.
#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(); }
Izhod:

Rezultat zgornjega programa je vsebina datoteke 'output.txt', ki ni nič drugega kot rezultat ukaza ls.
3. primer:
Spodnji program C ++ je nadaljevanje prejšnjega primera. Tu izvedemo ukaz ls, ki je s sistemskim klicem preusmerjen na output.txt. Nato izvedemo še en sistemski klic z ukazom “rm” (odstranitev), da odstranimo datoteko output.txt.
Po tem znova izvedemo ukaz ls in tokrat izhod preusmerimo v drugo datoteko, tj. Text.txt. Na koncu natisnemo vsebino datoteke text.txt.
#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(); }
Izhod:

Zaustavitev sistema C ++
Ukaz sistema (»premor«) začasno ustavi operacije, ko se izvede. Klic sistema (»premor«) je odvisen od operacijskega sistema in izvede naslednje korake:
- Ta klic začasno prekine program in operacijskemu sistemu tudi sporoči, naj odpre lupino operacijskega sistema.
- Operacijski sistem dodeli pomnilnik za izvajanje ukaza.
- Nato sprosti pomnilnik, zapusti operacijski sistem in nadaljuje prekinjeni program.
Naslednji program prikazuje primer sistemskega ('pavza') klica.
#include #include using namespace std; int main () { cout << 'Hello World!' << endl; system('pause'); return 0; }
Izhod:

Kot smo že omenili, je sistemski klic ('premor') zelo počasen in je odvisen od operacijskega sistema. Zgoraj omenjene korake je težko izvesti.
Poleg tega lahko sistemski klici predstavljajo tudi nekaj varnostnih tveganj. Zato se v naših programih običajno ne zanašamo na sistemske klice ('premor').
Namesto tega lahko s pomočjo cin.get dosežemo enako funkcionalnost kot sistem ('premor'), kot je prikazano v spodnjem programu.
#include #include using namespace std; int main () { cout << 'This is SoftwareTestingHelp.com' << endl; cin.get(); // same as getchar() return 0; }
Izhod:

Kot je prikazano zgoraj, lahko z cin.get zaustavimo izhod, dokler ne pritisnemo neke tipke. Za razliko od sistema ('premor') ni odvisen od operacijskega sistema. Prav tako ne sledi korakom, ki smo jih izvedli, ko zaženemo sistem ('premor').
Funkcije knjižnice System Vs
Sistemski klici so odvisni od operacijskega sistema. So tudi zelo počasni in težki za vire. Funkcije knjižnice niso odvisne od operacijskega sistema. So hitrejši in ne porabijo preveč virov ali pomnilnika.
Najpogostejša uporaba sistemskih klicev je za sistemske ('premor') in sistemske ('cls') ukaze. Knjižnične funkcije so vgrajene funkcije, ki vsebujejo funkcije, povezane z matematiko, vhodno / izhodnimi datotekami itd.
Zaključek
V tej vadnici školjke C ++ smo razpravljali o različnih sistemskih funkcijah. Videli smo primere predaje ničelnega kazalca sistemskemu ukazu, ki preverja, ali je ukazni procesor na voljo ali ne. Podrobno smo razpravljali tudi o sistemskem ukazu ('premor') in njegovih alternativah.
=> Tukaj preverite VSE Vadnice za C ++.
Priporočeno branje
- Razvrstitev lupine v C ++ z primeri
- Vadnica za skriptiranje lupine Unix s primeri
- Vrste lupine Unix Shell: Ali v zanki, For Loop, dokler Loop v Unixu
- Primeri aritmetičnih in logičnih operaterjev skripte lupine Unix
- Funkcije skripta lupine Unix s parametri in vrnitvijo
- Napredno skriptno oblikovanje lupine Unix: nizi, operaterji preizkusov datotek in nizov, posebne spremenljivke
- Vadnica za regularne izraze C ++: Regularni izrazi v jeziku C ++ z primeri