Näide süsteemikõne valimiseks:
Olgem lihtsa näite valitud süsteemikõne toimimise kontrollimiseks. Avage käsurea kest, kasutades klahve „Ctrl + Alt + T.”Pärast terminali avamist veenduge, et teie süsteemi oleks installitud C-keele kompilaator, kuna kood ei tööta ilma selleta. Kui teil seda pole, proovige selleks teha järgmist käsku.
$ sudo apt install gcc
Kui soovite, et Linuxi valitud süsteemikõne toimiks, peate oma süsteemi installima paketi manpages-dev vastavalt alltoodud käsule. Jätkamiseks kirjutage oma kasutaja parool.
$ sudo apt install manpages-dev
Valitud süsteemikõne süntaksit ja toimimist näete alloleva käsuga "man".
$ man 2 vali
Valitud süsteemikõne väljundkäsuleht on näidatud allpool. Sulgege see, vajutades klahvi “q”.
Moodul select () toetab standardkatalooge, käsukesta terminali ja pseudoterminali rakendusi, STREAMS-keskseid dokumente, FIFO-sid, sealhulgas torusid. Select () tegevus dokumentide kirjeldajatel, viidates neile teistele failivormingutele, pole teada. Nii et allpool on süsteemi süsteemikõne selgitus.
Ülaltoodud pildil näidatud süntaksi kirjeldust kirjeldatakse allpool.
Eespool on teek, mis lisatakse valitud süsteemi kõne kasutamise ajal C-koodi. Kui seda pole kaasas, ei tööta kood.
The nfds lause määrab failikirjeldajate komplekti, mida hinnatakse. Meetod select () kontrollib failikirjureid vahemikus 0 kuni nfds-1.
Kuigi readfds ei ole null, see viitab vormi fd_set massiivile, mis määratleb, milliseid dokumendikirjeldajaid tuleks sisendis lugeda ja millised dokumendikirjeldajad peaksid olema väljundis lugemiseks seatud.
Kui writefds parameeter ei ole tühi, see viitab vormi fd_set olemile, mis määratleb, milliseid dokumendikirjeldajaid tuleb valmisolekusse sisendisse testida. Dokumendi kirjeldajad peaksid olema valmis koostama väljundil.
Samal ajal kui errorfds parameeter ei ole tühi, see viitab objektile fd_set, mis määrab, milliseid dokumendikirjeldajaid tuleks sisendi veaolukorra ootamiseks testida; samuti tuleks dokumendi kirjeldusi väljundil kontrollida.
Readfds-, writefds- ja errorfds-parameetreid värskendatakse pärast lõpetamist, et näidata, et dokumendikirjeldajad on ette valmistatud lugemiseks, täielikult kirjutamiseks ette valmistatud või isegi ootamas erandit. Kui järgnev bitt on sisendil fikseeritud ja vastav olukord kehtib kõigi failikirjeldajate jaoks, mis on veidi alla nfds, asetatakse järgmine bitt tõhusale lõpuleviimisele.
Kuigi ajalõpu parameeter pole tegelikult tühi, viib see struktuuri ajaaja entiteedini, mis määrab kõrgeima aja teie tule hoidmiseks valiku lõpetamiseks. Valik () ei takista päris, kui selline ajalõpu parameeter viib 0 elemendiga struktuuri ajalisse objekti. Valik () peatub, välja arvatud juhul, kui esinemine võimaldab ühte filtritest tõese (nullist erineva) tulemusega hankida, olenemata sellest, kas ajalõpu lause on tühi viide. Valik () õnnestub edukalt ja annab 0, kui ooteperiood lõpeb isegi enne esinemist, mis võib nõuda ühe mitmest maskist kohandamist nulliväärtusega.
See makro kõrvaldab kogu (kustutab kõik dokumendi kirjeldajad). Seda saab kasutada esimese käiguna dokumendikirjeldajate kogu initsialiseerimisel.
Dokumendi kirjeldaja fd lisatakse kogusse selle makro abil. Dokumendikirjeldaja kasutamine juba eksisteerinud kogu jaoks oleks mittetoimiv ja seetõttu ei tekiks erandiviga.
See makro eemaldab dokumendikirjeldaja fd kogust. Kogust välja jäetud failikirjeldus, mida pole olemas, ei tööta ja seetõttu ei too see erandit.
Süsteemikõne select () muudab kogude teavet või andmeid vastavalt ülalnimetatud reeglitele. FD ISSET () makro võidakse ära kutsuda, kasutades käsku select (), et näha, kas dokumendi kirjeldaja jääb kogusse kättesaadavaks.
Loome uue C-tüüpi faili nimega „uus.c ”nagu allpool.
$ nano uus.c
GNU toimetaja on avatud. Kirjutage sinna all olev kood. Kood sisaldab päiseid, põhifunktsiooni koos mõne ülalkirjeldatud failikirjeldusega. See sisaldab ka ajaintervalli väärtuse struktuuri. Seejärel oleme kasutanud valitud süsteemikõnet, et kontrollida viga lauses „kui”. Selle koodi salvestamiseks vajutage klahvikombinatsiooni „Ctrl + S” ja redaktorist väljumise lõpetamiseks klahvi „Ctrl + X”.
Nüüd kompileerige kood käsu “gcc” abil.
$ gcc uus.c
Käivitage kood ja ärge lisage sisendit. Väljundil on kirjas „valige timeout.”
$ ./ a.välja
Jällegi käivitage kood ja sisestage terminali sisend, nt.g., "Aqsa."See väljastab, et" andmed on saadaval.”
Järeldus:
Oleme rakendanud valitud süsteemikõne Ubuntu 20-s.04 Linuxi süsteem. Kood peaks töötama kõikides Linuxi jaotustes võrdselt ja korralikult. Loodetavasti leiate, et seda artiklit on lihtne rakendada ja mõista.