Semctl -Systemaufruf in c

Semctl -Systemaufruf in c
Die C -Sprache erstellt den SemCTL -Systemaufruf im Linux -System. Dieser Systemaufruf wurde im Linux -System weit verbreitet, um die von der Konsolenhülle angegebenen Steuerungsprozesse auf einem bestimmten Semaphor -Satz durchzuführen. Die Semaphoren sind von IPs bekannt. Semaphor kann eine Variable mit abstraktem Datentyp für den Kontrollzugriff von 1 Ressource für viele Verfahren haben. Daher wurde hier der SemCTL -Systemaufruf verwendet, um den Semaphor -Satz zu steuern. Beginnen wir mit dem Linux -System anmelden.

Öffnen Sie die Konsolenanwendung aus dem Suchbereich. Eine schnelle alternative Möglichkeit, die Konsole zu öffnen, ist über „Strg+Alt+T“.

Beispiel:

Erstellen Sie eine neue C -Datei im Home -Ordner des Linux -Systems mit der Verwendung des Befehl "touch". Wir haben diese C -Datei als „Semctl“ benannt.C". Sie können es so nennen, wie Sie möchten. Die Abfrage lautet wie folgt:

$ touch semctl.C

Der Gnu Nano -Editor wird verwendet, um die Datei zu bearbeiten und zu öffnen. Die folgende Abfrage wurde also verwendet, um das „Semctl“ zu öffnen.c ”Datei.

$ nano semctl.C

Wie im Bild darunter gezeigt, dass die Datei bereits im Editor geöffnet wurde. Schreiben Sie denselben Code in Ihrer Datei auf, um die Funktionsweise des Systems „SemCTL ()“ anzuzeigen. Die Header-Datei für Eingabe-Output und Semaphoren wurde zu Beginn der C-Datei aufgenommen. Die Hauptmethode wurde zusammen mit einer anderen Funktion deklariert, "get_val ()" ". Ausgehend von der Hauptmethode haben wir eine variable „V“ definiert, die ihren Wert aus der Funktion get_val erhält. Diese Methode wurde aufgerufen, während er mit zwei Argumenten in den Parametern übergeben wurde. Jetzt wurde die Kontrolle der Funktion get_val () gegeben. Diese Funktion enthält zwei Argumente, e.G. SID als Semaphore -ID und "Semnum" als Semaphorennummer. Die bestandenen Werte 1 und 4 werden in diesen Argumenten gespeichert.

Der SEMCTL. Die GetVal -Funktion wurde hier verwendet, um den aktuellen Semaphorwert zu erhalten. Nach der Sammlung eines Semaphorwerts wurde es an die Hauptmethode zurückgegeben. Der Wert wurde in der Variablen "V" gespeichert. Dieser variable Wert wird unter Verwendung der im C -Code angezeigten Printf -Anweisung angezeigt. Sie können jetzt den ausgefüllten Code mit "Strg+S" speichern und ihn wieder an die Konsole lassen.

Lassen Sie uns den „Semctl.c ”Datei in der Konsole. Verwenden Sie den empfohlenen GCC -Compiler für solche Arten komplizierter C -Codes. Die Zusammenstellung gibt die Warnung zurück, aber es besteht keine Notwendigkeit für Panik. Führen Sie Ihre Datei mit dem „a aus.OUT ”Befehl. Die Ausgabe zeigt, dass der aktuelle Semaphorwert „-1“ ist.

$ gcc semctl.C
$ ./A.aus

Öffnen wir die Datei noch einmal, um sie ein wenig anders zu machen. Öffnen Sie es mit dem Editor "Nano" und definieren Sie die Variable "max_comps" mit einem gewissen Wert, e.G. 10. Aktualisieren Sie diesmal den Code mit dem gezeigten folgenden Skript. Beginnen Sie mit der Initialisierung der Hauptmethode. Es enthält den Funktionsaufruf der Methode comp_use (). Jetzt wurde die Kontrolle der Methode comp_use übergeben.

Die Funktion comp_use enthält die Schleife "für", um den Variablen -Wert "max_comps" als maximaler Wert für die "für" -Schloop zu verwenden. Bis die Schleife endet, zeigt die Druckanweisung die Computernummer an. Es wird auch den aktuellen Semaphorwert aus der Methode „get_val“ erhalten und druckt, indem er ihn hier aufruft. Die GET_VAL -Methode wurde ausgeführt und hat ihren Wert an die Print -Funktionsanweisung comp_use () zurückgegeben, um sie auf dem Bildschirm anzuzeigen. Speichern Sie die Codedatei noch einmal und kündigen Sie sie, um zurück zu kommen.

Jetzt müssen wir den aktualisierten Code mit dem Befehl „GCC“ zur Kompilierung kompilieren. Nach der erfolgreichen Zusammenstellung haben wir die Datei ausgeführt und den Semaphorwert für jeden Computer erhalten.

$ gcc semctl.C
$ ./A.aus

Abschluss:

Der Semctl -Systemaufruf und seine Arbeit wurden in diesem Leitfaden mit C -Sprache mit Ubuntu 20 deutlich demonstriert.04 Linux -System. Wir hoffen, dass Sie diesen Artikel hilfreich finden, während Sie die Konzepte von Semaphoren im Linux -System verstehen und lernen.