Syntaks
#inkludereForklaring av syntaks
BRK () -systemanropet får programmet til å bryte i sluttdatasegmentposisjonen. Sluttdatasegmentet er avrundet til neste sidegrenser siden virtuelt minne er tildelt i sideenheter. Forsøk på å senke programbruddverdien under startverdien vil helt sikkert resultere i uventet atferd, for eksempel en segmenteringsfeil når du prøver å få tilgang til data i nå tilgjengelige deler av de initialiserte eller uinitialiserte datasegmentene. Flere faktorer bestemmer den nøyaktige øvre grensen for hvor programbruddet kan plasseres.
Hvorfor bruke BRK () Systemanrop i C
BRK () -funksjonen brukes til å endre mengden minne som er tildelt den som ringer prosessen. Modifiseringen gjøres ved å endre bruddverdien av prosessen til Addr og gi det nødvendige antallet plass. BRK () -funksjonen brukes til å endre mengden minne som er tildelt den som ringer prosessen. Når bruddverdien stiger, gjør også mengden tildelte rom. Det nylig tildelte rommet har en verdi på 0 tildelt den. Verdiene til det omfordelte rommet tømmes ikke hvis programmet først reduserer og etterpå øker bruddverdien.
Forutsetninger
Eksempel for å forklare BRK () i C
Vi har designet det enkleste eksemplet for å utdype konseptet for å bruke BRK () systemanrop i C. La oss opprette en fil med .c utvidelse ved å bruke nano -kommandoen i skallet. Utfør vedlagte kommandoen nedenfor i skallet:
$ Nano BRK1.cI Linux-operativsystemer er GNU Nano en enkel kommandolinje-tekstredigerer. Den har alle de grunnleggende funksjonene du antar fra en tekstredigerer, i tillegg til noen flere. Ved utførelse vil filen bli åpnet i GNU -redaktøren. Skriv den viste koden i filen din med få endringer i den, avhengig av arbeidskravene dine.
I koden som er vedlagt i ovennevnte skjermbilde, blir argumentant forkortet som ARGC, og argumentverdier er forkortet som ARGV. Dette er variablene som sendes til hovedfunksjonen når den begynner å løpe. Ved kjøretid henter SYSCONF -funksjonen konfigurasjonsinformasjon. sysconf med argumentet _sc Pagesize er riktig grensesnitt for å forhøre seg om sidestørrelse. SBRK () øker programmets lagringsplass ved å øke byte. Den nåværende plasseringen av programpausen finner du ved å ringe SBRK () med en inkrementell på 0. BRK () -systemanropet får programmet til å bryte i sluttdatasegmentposisjonen. Sluttdatasegmentet er avrundet til neste sidegrense fordi virtuelt minne er tildelt i sideenheter.
Utgangen fra koden kan vises ved å utføre den siterte instruksjonen under Ubuntu 20.04 Linux operativsystemterminal.
$ GCC BRK1.cI tilfelle GCC ikke er installert i Ubuntu 20.04 Operativsystem, installer det ved å kjøre den vedlagte kommandoen nedenfor i skallet:
$ sudo apt install GCCUtgangen vises i ovennevnte skjermbilde som presenterer sidestørrelse, programbrudd, størrelse på røye osv.
Konklusjon
Denne artikkelen handlet om BRK () systemanrop på programmeringsspråk. Vi har prøvd vårt beste for å forklare konseptet BRK () systemanrop på programmeringsspråk og dets bruk. Et av eksemplene er blitt forklart i detalj for din forståelse. Implementering av dette eksemplet med de nødvendige endringene vil lære deg BRK () -systemanropsbruken på C -programmeringsspråket.