Pasirinkto sistemos skambučio pavyzdys:
Turėkime paprastą pavyzdį, kaip patikrinti pasirinkto sistemos skambučio veikimą. Atidarykite komandų eilutės apvalkalą naudodami „Ctrl + Alt + T.„Atidarius terminalą įsitikinkite, kad jūsų sistemoje yra įdiegtas C kalbos kompiliatorius, nes kodas be jo neveiks. Jei neturite, išbandykite toliau pateiktą komandą.
$ sudo apt install gcc
Jei norite, kad „Linux select“ sistemos skambutis veiktų, turite įdiegti paketą „manpages-dev“, kaip nurodyta toliau pateiktoje komandoje. Parašykite savo vartotojo slaptažodį, kad galėtumėte tęsti.
$ sudo apt įdiekite manpages-dev
Naudodamiesi žemiau esančia komanda „man“, galite pamatyti pasirinkto sistemos skambučio sintaksę ir veikimą.
$ 2 pasirinkite
Žemiau parodytas pasirinkto sistemos skambučio išvesties vadovas. Išeikite iš jo paspausdami klavišą „q“.
Standartinius katalogus, komandų apvalkalo terminalą ir pseudoterminalo programas, į STREAMS centruotus dokumentus, FIFO, įskaitant vamzdžius, palaiko „select“ (modulis). Select () veikla dokumentų aprašuose, nurodant šiuos kitus failų formatus, nežinoma. Taigi žemiau yra „Select system“ skambučio paaiškinimas.
Ankstesniame paveikslėlyje parodytos sintaksės aprašymas aprašytas žemiau.
Aukščiau yra biblioteka, kuri turi būti įtraukta į C kodą, naudojant pasirinktą sistemos skambutį. Jei jo nėra, kodas neveikia.
The nfds sakinys apibrėžia failų aprašų rinkinį, kuris bus įvertintas. „Select ()“ metodas tikrina failų aprašus nuo 0 iki nfds-1.
Nors readfds nėra nulis, tai nurodo formos fd_set masyvą, kuris apibrėžia, kuriuos dokumentų aprašus reikia patikrinti, ar jie pasirengę skaityti įvestyje, ir kuriuos dokumentų aprašus reikia nustatyti skaityti išvestyje.
Kai writefds parametras nėra tuščias, jis nurodo formos fd_set subjektą, kuris apibrėžia, kuriuos dokumentų aprašus reikia patikrinti, ar jie pasirengę įrašyti įvestį. Dokumentų aprašai turėtų būti paruošti sudaryti išvesties.
Kol errorfds parametras nėra tuščias, jis nurodo objekto rūšį fd_set, kuris nustato, kurie dokumentų aprašai turėtų būti tikrinami laukiant klaidos būsenos įvedant; be to, išvesties metu reikėtų patikrinti dokumentų aprašus.
„Readfds“, „writefds“ ir „errorfds“ parametrai po atlikimo atnaujinami, kad būtų galima parodyti, jog dokumentų aprašai yra paruošti perskaityti, visiškai paruošti rašyti ar net laukia išimties būsenos. Jei vėlesnis bitas yra fiksuotas įvestyje ir atitinkama situacija galioja kiekvienam failo deskriptoriui šiek tiek žemiau nfds, kitas bitas bus veiksmingai įvykdytas.
Nors skirtojo laiko parametras nėra tuščias, jis veda prie struktūros laiko elemento, kuris nustato didžiausią laiką, kol sulaikysite ugnį, kad pasirinkimas būtų baigtas. „Select“) ne visai trukdo, jei toks skirtojo laiko parametras veda prie struktūros laiko objekto su 0 elementų. Pasirinkimas () sustoja, nebent įvykis leidžia gauti vieną iš filtrų su tikru (ne nuliu) rezultatu, nesvarbu, ar skirtasis laikas yra tuščia nuoroda. Pasirinkus (), efektyviai sekasi ir gaunama 0, kai laukimo laikotarpis baigiasi dar prieš įvykstant, o tai gali reikėti, kad viena iš kelių kaukių būtų pritaikyta nuliui.
Ši makrokomanda pašalina rinkinį (ištrina visus dokumentų aprašus). Jį galima naudoti kaip patį pirmąjį žingsnį inicijuojant dokumentų aprašų rinkinį.
Dokumento deskriptorius fd prie kolekcijos pridedamas naudojant šią makrokomandą. Dokumento aprašo naudojimas jau egzistuojančiai kolekcijai neveiktų, todėl dėl to nebus padaryta išimties klaida.
Ši makrokomanda pašalina dokumento aprašą fd iš kolekcijos. Neegzistuojantis rinkinio failo aprašas neveikia, todėl nėra išimtis.
„Select ()“ sistemos skambutis pakeičia kolekcijų informaciją ar duomenis pagal pirmiau minėtas taisykles. FD ISSET () makrokomanda gali būti pašalinta iškviečiant select (), kad pamatytumėte, ar dokumento aprašas lieka pasiekiamas kolekcijoje.
Sukurkime naują C tipo failą pavadinimu „naujas.c “, kaip nurodyta toliau.
$ nano naujas.c
GNU redaktorius atidarytas. Jame užrašykite žemiau esantį kodą. Kode yra antraštės, pagrindinė funkcija su kai kuriais failų aprašais, kaip aprašyta aukščiau. Jame taip pat yra laiko intervalo vertės struktūra. Tada mes naudojome pasirinktą sistemos skambutį, kad patikrintume, ar „if“ sakinyje yra klaida. Paspauskite „Ctrl + S“, kad išsaugotumėte šį kodą, ir „Ctrl + X“, kad neuždarytumėte redaktoriaus.
Dabar sukompiliuokite kodą naudodami „gcc“ instrukciją.
$ gcc naujas.c
Paleiskite kodą ir nepridėkite įvesties. Išvestyje bus parašyta „pasirinkite skirtąjį laiką.“
$ ./ a.išėjo
Vėlgi paleiskite kodą ir įveskite šiek tiek įvesties terminale, t.g., „Aqsa.“Tai pateiks, kad„ duomenys yra prieinami.“
Išvada:
„Ubuntu 20“ įdiegėme pasirinktą sistemos iškvietimą.04 „Linux“ sistema. Kodas turėtų veikti vienodai ir tinkamai visuose „Linux“ paskirstymuose. Tikiuosi, kad šį straipsnį lengva įgyvendinti ir suprasti.