Ring getopt funksjonsbruk

Ring getopt funksjonsbruk
De fleste av oss vet hvordan vi kan bruke argumenter i programmet vårt, men hvis vi begynner å bruke mange argumenter og prøve å opprettholde riktig rekkefølge og antall argumenter, vil det gjøre et virvarpuslespill for brukeren. For å unngå et slikt hinder, vil vi bruke forskjellige "alternativer". For eksempel er "ls -l" her "-l" et alternativ. Vi kan bruke flere argumenter og bruke dem som alternativer i flere ordrer. Vi har også sett dette med vår GCC -kompilator i denne artikkelen. Vi kan også bruke mange alternativer og kan bruke dem i henhold til våre behov.

Syntaks:

Både 'argc ' og 'argv ' er parametrene for tellingserklæringen som akseptert av Main () -funksjonen. 'OPTSTRING'Er argumentet til en streng som må gjenkjenne alternativkarakterer. Enhver karakter sporet av en kolon ':' regnes som et argument. 'Optind' er den initialiserte variabelen som regnes som en indeks for det neste elementet der den er i kø for neste for behandling.

Formål med å bruke getopt i C:

Funksjonen GetOpt () er innebygd i C som brukes til å analysere kommandolinjeargumenter.

Returverdi i getopt () -funksjon

  1. Getopt () vil returnere '-1' hvis det ikke er flere alternativer igjen å behandle.
  2. Getopt () kommer tilbake '?'Hvis et alternativ som blir behandlet, er ikke gjenkjennelig.
  3. Getopt () returnerer “:” i stedet for '?'Hvis brukeren ikke legger inn noen verdi for argumentet.

Hvis getopt () kommer over et alternativkarakter som ikke er i 'Optstring', vil det returnere ('?') karakter som en utgang. Hvis et argument mangler som et alternativ, bør det returnere en kolon (':') som en utgang. Getopt () vil sette variabelen 'optopt' til det valgte tegnet som utløste feilen i begge tilfeller. Getopt () vil tilsvarende skrive ut en indikativ melding til stderr i syntaks som er definert for 'getopts' verktøyet hvis variabelen 'opterr' ikke er satt til 0 og den første karakteren til 'optsing' er ikke en kolon.

Getopt () -funksjonen trenger ikke å være gjeninntreden. Trådsikkerhet er ikke obligatorisk for en funksjon som ikke skal gjenopplives.

Eksempel for getOpt () i C:

La oss ta et enkelt program som godtar brukere som -u og -g for gruppen. Først av alt, må du inkludere overskriftsfilen for getopt () funksjonalitet.

#inkludere
#inkludere


La oss sette opp hovedfunksjonen der vi har 'Argc' som heltall og karakteroppstilling som '** argv'. Nå her vil vi sette opp noen få variabler og angi et heltallnavn alternativ_index = 0; Fordi hvert av argumentene som vi skal oppgi, vil ha et indeksnummer slik at vi deretter kan iterere det gjennom alle argumentene. Vi setter eller initialiserer den til 0 for å stoppe advarselen fordi vi kanskje bruker en ikke initialisert variabel.

# Char *user_name = null;

Siden vi ikke har en strengdatatype i C, satte vi opp en karakterutvalg for '-u' for å ta brukernavnet som en inngang og starte det med en nullverdi.

Nå går vi inn i en stundsløyfe, og det vil tillate oss å lese alle argumentene hvis noen alternativer er satt. Som med forhold, trenger vi parentesene våre for å omslutte det med en sann verdi som i vårt tilfelle er "opsjon_index = getopt (argc, argv," gu: ")". Vi vil bruke getopt () for å se på argumentantallet vårt som 'argc' og lese fra vår matrise 'argv' for å angi alternativene. På samme måte er her et alternativ "GU:" og vi har satt en kolon etter flagget "U". ':' Etter flaggverdien indikerer at den skaffer seg et argument. Det spiller ingen rolle i hvilken rekkefølge du legger alternativene, men det betyr noe at du setter en tykktarm etter alternativene.

Nå vil vi ha en Switch -setning i vår While Loop, og vi vil undersøke verdien som er lagret i indeksen for variabelen “Option_index”. Vi undersøker hvert element for hvert tilfelle.

Vi vil først sette saken der vi angir “user_name = optarg”. Alternativene kan brukes til å lese brukeren vi la til som en innspill når du legger inn 'U'. Vi må også indikere at vi er ferdige med denne saken, og vi gjør det på C -språk ved å bruke 'pause' etter hvert tilfelle til slutt.

På samme måte bruker vi det andre tilfellet der hvis brukerinngangen 'G', vil han bli indikert at han også har valgt gruppen, og vi bryter fra denne uttalelsen også.

Nå i det siste tilfellet bruker vi det til alle andre alternativer, som i vårt tilfelle kan være noen feil. Vi kan hente dette med 'standard:' og vi kan gå gjennom og spesifisere om det ugyldige alternativet er identifisert eller angitt. Vi vil vise utskriftsuttalelser med "feil alternativ".

Vi kommer også til å gjøre et lite mangfold. Vi håper du ikke har sett før det er returverdien. Hvis vi setter returverdien til 1, vil vi forlate hovedfunksjonen. Programmet vårt vil rapportere en feil som betyr at vi har kjørt programmet feil, så vi ikke vil returnere 0, så vi forlater programmet på sitt punkt.

Nå har vi allerede stengt alle blokkene og sørget for at vi vanligvis har kommet tilbake til hovedbrakettene. Programmet returnerer normalt 0 -verdien til hovedfunksjonen. Vi har nå kontrollert feiloperasjon av programmet vårt.

La oss se om programmet vårt fungerer; Etter å ha skrevet følgende kode, vil vi at du legger denne kommandoen i kommandolinjen. Vi brukte GCC og gikk rett inn i kildekoden 'Option_Program.C 'og brukte deretter “-o” for alternativer. Etter dette kommer det til å bli et argument, og her er 'Simple' en utgang.

Etter å ha utført vår 'GCC Simple_Option.C -o Simple -Wall ' Kommando vellykket, nå går vi gjennom og løper med et feil alternativ som er '-h'. Å bruke "-h" som et alternativ vil gi oss en feil fordi vi har sendt et feil alternativ. Vi kan også bruke begge argumentene sammen, få resultatet deretter.

Her kan vi se om vi vil vite hvordan det siste programmet vårt ble utført. Hvis du skriver “Echo $?”, Og hvis det returnerer 0, betyr det at det siste programmet ble utført med hell, og hvis det returnerer 1 som du kan se i bildet ovenfor, noe som betyr at den siste programutførelsen mislykkes.

Konklusjon:

Denne artikkelen hadde som mål å gi deg en bedre og tydeligere forståelse av funksjonen getopt (), slik at du kan forbedre koden din lesbarhet og forbedre kodenes gjenbrukbarhet. Vi har diskutert et enkelt eksempel med syntaks. Artikkelen vil hjelpe deg med å få en veldig god kunnskap og forståelse av hvordan du bruker getopt () som en funksjon. Ulike argumenter som parametere har blitt diskutert for å utnytte funksjonen bedre.