Ratkaistu: terminaalin koko c

Viimeisin päivitys: 09/11/2023
Kirjoittaja: C SourceTrail

C:n ohjelmointimaailma on edelleen uskomattoman rikas ja monimutkainen, ja se on täynnä valtavia toimintoja, jotka vastaavat erilaisiin tarpeisiin. Otetaan esimerkiksi terminaalin koon käsite C-kielellä. Konsepti pyörii päätteen tai konsolin näytön koon säätämisessä C-ohjelmointikielellä. Tässä artikkelissa käsitellään C:n vahvistetun liittimen koon systemaattista ratkaisua, ja se tarjoaa kattavan vaiheittaisen selityksen koodista.

Joten miksi terminaalin koko on ratkaiseva? C-ohjelmoinnissa konsoli tai pääte tarjoaa käyttöliittymän, jonka avulla käyttäjä voi olla vuorovaikutuksessa ohjelman kanssa. Muuttujat, tietotyypit ja muut lähdöt ovat kaikki esillä päätteessä. Sen tärkeyden vuoksi selkeys ja riittävä tila konsolissa auttaa tarkkailemaan lähtöjä oikein.

Terminaalin koon ymmärtäminen

Sukella syvemmälle aiheeseen ja ymmärtää C:n terminaalin koon olemus. Päätteen koko viittaa rivi- ja sarakeelementtien määrään, jonka konsoliikkuna voi vastaanottaa. Se on ominaisuus, joka parantaa konsolin ulkoasun ja tuntuman määrittävien lähtöjen järjestelyä ja esitystapaa.

Kirjastossa sys/ioctl.h määritellyillä funktioilla, kuten ioctl(), on keskeinen rooli päätemittojen noutamisessa. Ne ovat vuorovaikutuksessa laitteen parametrien kanssa korkeammalla tasolla ja vaikuttavat merkittävästi useisiin I/O-toimintoihin.

 
#include <sys/ioctl.h>
#include <stdio.h>

int main() {
    struct winsize w;
    ioctl(0, TIOCGWINSZ, &w);

    printf ("lines %dn", w.ws_row);
    printf ("columns %dn", w.ws_col);

    return 0;
}

Ratkaisu terminaalin kokoon

Päätteen koon määrittäminen C:ssä voidaan saavuttaa tehokkaasti käyttämällä ioctl()-funktiota. Funktio liittyy päätteen kokoon ja palauttaa käytettävissä olevien rivien ja sarakkeiden määrän. Ohjelma käyttää TIOCGWINSZ-kutsua päätteen koon pyytämiseen ja tulostaa sen jälkeen saadut rivi- ja sarakearvot.

Kuten näytekoodi yllä ioctl()-funktio hakee päätteen mitat ja mitat tulostetaan printf()-komennolla. Näitä tietoja käytetään tavallisesti säätämään lähdön asettelua käyttäjälle.

Koodin vaiheittainen selitys

Koodi on suhteellisen yksinkertainen. Tässä on vaiheittainen esittely:

Ensimmäisellä rivillä tuodaan tarvittavat kirjastot sys/ioctl.h ja stdio.h.

  • sys/ioctl.h tuodaan ioctl()-funktiota varten
  • stdio.h tarjoaa ydintulo- ja lähtötoiminnot

Seuraavaksi määritellään main()-funktio, joka tarkoittaa koodin sisääntulokohtaa. Tästä ohjelman suorittaminen alkaa.

In seuraava rivi, struct winsize -objekti w on ilmoitettu. Sitä käytetään liittämään ioctl()-funktioon ja tallentamaan päätteen mitat.

Ioctl()-funktiota kutsutaan sitten kolmella argumentilla: 0, TIOCGWINSZ ja &w. Tässä 0 viittaa stdinin tiedostokuvaajaan, TIOCGWINSZ on vakio, joka käskee ioctl:n hakemaan ikkunan koon, ja &w on osoitin winsize-rakenteeseen, johon mitat tallennetaan.

Kun olet vuorovaikutuksessa päätteen mittojen kanssa ioctl:n avulla, terminaalin koko (rivit ja sarakkeet) näytetään printf(:llä), jolloin koko prosessi on valmis.

Tämä esimerkki kuvaa päätelaitteen koon hakemista ja säätämistä C-kielellä. Päätteen koon tunteminen on erittäin tärkeää, mikä auttaa luomaan käyttäjäystävällisiä käyttöliittymiä ja maksimoimaan päätelaitteen visuaalisen potentiaalin.

Related viestiä: