Sem_post 3 c funksjon

Sem_post 3 c funksjon
"Sem_post ()" -metoden utfører en semafore -opplåsing på semaforen som er referert av SEM for å låse den opp. Ingen tråder ble holdt opp mens du ventet på at semaforen skulle låse opp. I stedet økes semaforverdien ganske enkelt hvis semaforverdien oppnådd fra denne handlingen er positiv. "Sem_post ()" -funksjonen hever (låser opp) semaforen som SEM indikerte. En semafores verdi økes med en når et innlegg blir laget ved hjelp av sem_post () -metoden. Vi vil bruke denne "sem_post ()" -funksjonen her i vår C -programmering og vil vise deg hvordan "sem_post ()" -funksjonen vil øke verdien av semaforen med en i denne guiden.

Syntaks:

Syntaksen til denne "sem_post ()" -funksjonen i C -programmering er gitt nedenfor:

int sem_post (sem_t *sem);

Eksempel nr. 1:

Eksemplene i denne guiden er kompatible med Ubuntu 20.04. GCC -kompilatoren må installeres for Ubuntu 20.04 for å utføre disse eksemplene. Når GCC er installert, vil det opprettes en liten del av C -koden for å vise hvordan du bruker "sem_post ()" -funksjonen i C -programmering. Noen få toppfiler brukes i starten av koden. Standardinngangs-/output -overskriftsfilen er “STDIO. H ”og er tilgjengelig som følger. Når vi skriver C -koden, må vi inkludere denne overskriftsfilen. “Semaforen. H ”overskriftsfil blir deretter lagt til. For å bruke "sem_post ()" -funksjonen, som er definert i denne overskriftsfilen, har vi inkludert den.

"Main ()" -funksjonen blir deretter plassert her. Med denne "Main ()" -funksjonen blir "int" datatypen brukt. I tillegg er det "sem_t" med navnet "my_sem". I dette tilfellet er “My SEM” erklært sammen med “Num” av “int” datatypen. Vi bruker "SEM init ()" -koden nedenfor. Det er tre argumenter i denne “sem_init.”Her initialiserer parameteren“ & My_sem ”semaforen som den første parameteren. Det andre alternativet spesifiserer hvordan du deler eller bruker denne semaforen. Det andre argumentet er i dette tilfellet satt til “0”, som indikerer at denne semaforen bare vil bli brukt av tråder som for tiden er i drift.

Startverdien til semaforen er beskrevet av den tredje parameteren. Her legges “20” inn som semaforens opprinnelige verdi. Så setter vi "sem_post ()" -funksjonen her og passerer "& my_sem" som dens parameter. "SEM getValue ()" -metoden vil da bli brukt til å hente semaforens innledende verdi. Her blir parametrene “& My SEM” og “& Num” bestått. Dette vil returnere semaforens nummer etter å ha utført "sem_post ()" -funksjonen. Den opprinnelige verdien vil bli økt med en.

Nå, ved å legge inn "printf" -uttalelsen på dette stedet, skriver vi ut dette nummeret etter utførelsen av "sem_post ()" -funksjonen på terminalskjermen. Informasjonen som er lagt inn vil vises på skjermen.

For å få utdataene fra denne koden, har vi to instruksjoner. Den første kommandoen må inneholde “-lptread” og “-lrt” før vi kan treffe Enter. Vi utfører den andre kommandoen etter vellykket sammenstilling av denne C -koden. Utgangen vises deretter. Du kan se fra denne utgangen at den viser semaforens verdi etter "sem_post ()" -funksjonen økes med en og viser “21”.

Eksempel 2:

Vi starter vårt neste eksempel med å plassere overskrifter -filene “stdio. H ”og“ Semafor. h ”. Vi må legge til disse overskriftsfilene for denne koden. Nå bruker vi "int main ()" -funksjonen. Vi har en semafor som heter “New_sem” og erklærer “nummeret” som “int” datatype. Vi plasserer "sem_init ()" -funksjonen og gir tre parametere som er nødvendige for dette. Vi setter den opprinnelige verdien av denne semaforen som "20" og bruker deretter "sem_post ()" -funksjonen som vil øke dens opprinnelige verdi med en.

Sett deretter "sem_getValue ()" -funksjonen og pass to parametere for denne funksjonen og bruk "printf" under denne. Så den vil vise den økte verdien på skjermen. Vi setter igjen en "sem_post ()" -funksjon og setter den samme semaforen i denne andre "sem_post ()" -funksjonen. Deretter bruker du igjen "Sem_getValue ()" som vi allerede diskuterte i vårt forrige eksempel. “Printf” brukes til å skrive ut verdien etter denne andre "Sem_Post ()" -funksjonen.

Du kan se at den først skriver ut verdien av semaforen som "21" når vi gir den første verdien av semaforen som "20". Etter "sem_post ()" -funksjonen øker verdiene med en og viser “21”. I den andre linjen er verdien av semaforen “22” fordi vi igjen setter "sem_post ()" -funksjonen.

Eksempel nr. 3:

Vi oppdaterer koden som er nevnt tidligere. Koden er den samme som den vi etablerte tidligere. Vi plasserer de to toppfilene “stdio. H ”og“ Semafor. H ”som er nødvendig for denne koden. Vi bruker også "int main ()" -funksjonen, og vi erklærer semaforen og verdien, en "int" datatype, under denne hovedfunksjonen. Etter å ha brukt "SEM init" for å etablere semaforen og gitt argumentene sine, bruker vi metoden “SEM getValue ()” for å hente semaforens innledende verdi. Etter det, skriv den ut slik vi allerede har forklart. "Sem_post ()" -funksjonen er en ny som vi legger til her. Denne funksjonen brukes til å øke verdien av semaforen. Resultatet vil vise hvordan "sem_post ()" -funksjonen øker den opprinnelige verdien av denne semaforen. Vi bruker deretter "sem_getValue ()" -funksjonen igjen og bruker "printf ()", vi skriver også ut den verdien.

I denne utgangen vises den opprinnelige verdien av semaforen først og deretter vises verdien etter "sem_post ()" -funksjonen. Du kan legge merke til at det øker den opprinnelige verdien av semaforen.

Konklusjon

Vi skriver denne guiden for deg å lære mer om "sem_post ()" -funksjonen. Denne guiden dekket “sem_post ()” -funksjonens koder og resultater. C -funksjonen “sem_post ()” ble dekket i denne guiden. Vi har diskutert hvordan "sem_post ()" -funksjonen øker verdien av semaforen i C. Vi har gitt tre separate eksempler her. C -kildekoden som er nødvendig for å bruke "sem_post ()" -funksjonen er gitt, sammen med utgangen for hvert eksempel. Vi håper at du vil forstå denne forestillingen tydelig etter å ha lest denne guiden tydelig.