Åpne konsollapplikasjonen fra søkeområdet. En rask alternativ måte å åpne konsollen på er via “Ctrl+Alt+T”.
Eksempel:
Opprett en ny C -fil i hjemmemappen til Linux -systemet med bruk av “Touch” -kommandoen. Vi har kalt denne C -filen som “SEMCTL.C ”. Du kan nevne det som du vil. Spørringen er som følger:
$ Touch Semctl.c
GNU Nano -redaktøren vil bli brukt til å redigere og åpne filen. Så, den angitte spørringen nedenfor har blitt brukt til å åpne “SEMCTL.c ”-fil.
$ nano semctl.c
Som vist på bildet under at filen allerede er åpnet i redaktøren. Skriv ut den samme koden i filen din for å se at "Semctl ()" -systemanropet fungerer. Hodefilen for input-output og semaforer er inkludert i starten av C-filen. Hovedmetoden er blitt erklært sammen med en annen funksjon, "get_val ()". Med utgangspunkt i hovedmetoden har vi definert en variabel “v” som får verdien fra get_val -funksjonen. Denne metoden er blitt kalt mens du har bestått med to argumenter i parametrene. Nå er kontrollen gitt til funksjonen get_val (). Denne funksjonen inneholder to argumenter, e.g. Sid som semafore ID og “Semnum” som semafornummer. De passerte verdiene 1 og 4 vil bli lagret i disse argumentene.
SEMCTL -kommandoen er blitt brukt innenfor funksjonen for å få det nåværende semaforet med semafor -ID og semafornummer. GetVal -funksjonen har blitt brukt her for å få den nåværende semaforverdien. Etter samlingen av en semaforverdi er den returnert til hovedmetoden. Verdien er lagret i variabelen “V”. Denne variableverdien vises ved hjelp av Printf -setningen som vises i C -koden. Du kan nå lagre den fullførte koden med “Ctrl+S” og la den ligge tilbake til konsollen ved å bruke snarveis -kommandoer “Ctrl+X”.
La oss kompilere “SEMCTL.c ”-fil i konsollen. Bruk den anbefalte “GCC” -kompilatoren for slike typer kompliserte C -koder. Samlingen returnerer advarselen, men det er ikke behov for panikk. Utfør filen din med “a.ut ”-kommando. Utgangen viser at den nåværende semaforverdien er "-1".
$ GCC SEMCTL.c
$ ./en.ute
La oss åpne filen igjen for å gjøre den annerledes litt. Åpne den ved hjelp av “Nano” -redigereren og definer variabelen “Max_Comps” med en viss verdi, e.g. 10. Denne gangen oppdater koden med det viste nedenfor skriptet. Start fra initialiseringen av hovedmetoden. Den inneholder funksjonssamtalen til metoden Comp_use (). Nå er kontrollen gitt til metoden Comp_use.
Funksjonen Comp_use inneholder “For” -løkken for å bruke den variable “max_comps” -verdien som en maks verdi til “for” -sløyfen. Inntil sløyfen avsluttes, vil utskriftserklæringen vise datamaskinnummeret. Den får og skriver også ut den nåværende semaforverdien fra metoden "get_val" ved å ringe den her. Get_Val -metoden ble utført og returnert sin verdi til utskriftserklæringen om funksjon comp_use () for å vise den på skjermen. Lagre kodefilen en gang til og avslutt den for å komme tilbake.
Nå må vi sammenstille den oppdaterte koden med “GCC” -kommandoen for sammenstilling. Etter den vellykkede samlingen har vi utført filen og fått semaforverdien for hver datamaskin.
$ GCC SEMCTL.c
$ ./en.ute
Konklusjon:
SEMCTL -systemanropet og dets arbeid har blitt demonstrert tydelig i denne guiden med C -språk ved bruk av Ubuntu 20.04 Linux -system. Vi håper du vil finne denne artikkelen nyttig mens du forstår og lærer begrepene semaforer i Linux -systemet.