SEM_POST 3 C -Funktion

SEM_POST 3 C -Funktion
Die Methode „Sem_Post ()“ führt eine Semaphor -Entsperrvorrichtung auf dem Semaphor durch, auf das durch SEM verwiesen wird, um sie zu entsperren. Während des Semaphores wurden keine Fäden aufgehalten, um sich zu entsperren. Stattdessen wird der Semaphorwert einfach erhöht, wenn der aus dieser Aktion erhaltene Semaphorwert positiv ist. Die Funktion „sem_post ()“ erhöht (freischaltet) das Semaphor, das SEM angezeigt hat. Der Wert eines Semaphors wird um eins erhöht, wenn ein Beitrag mit der Methode Sem_post () erstellt wird. Wir werden diese Funktion „sem_post ()“ hier in unserer C -Programmierung verwenden und zeigen Ihnen, wie „sem_post ()“ die Funktion des Semaphors um eins in diesem Handbuch erhöht.

Syntax:

Die Syntax dieser Funktion „sem_post ()“ in der C -Programmierung ist unten angegeben:

int sem_post (sem_t *sem);

Beispiel 1:

Die Beispiele in diesem Handbuch sind mit Ubuntu 20 kompatibel.04. Der GCC -Compiler muss für Ubuntu 20 installiert werden.04 Um diese Beispiele auszuführen. Wenn GCC installiert ist, wird ein winziger Teil des C -Codes erstellt, um zu zeigen. Zu Beginn des Code werden einige Header -Dateien verwendet. Die Standard -Eingangs-/Ausgabeminoperate lautet „STDIO. H ”und ist wie folgt erhältlich. Beim Schreiben des C -Code müssen wir diese Header -Datei einschließen. Das „Semaphor. H ”Header -Datei wird dann hinzugefügt. Um die Funktion „sem_post ()“ zu verwenden, die in dieser Header -Datei definiert ist, haben wir sie aufgenommen.

Die Funktion „main ()“ wird dann hier platziert. Mit dieser Funktion „main ()“ wird der Datentyp „int“ verwendet. Zusätzlich gibt es "sem_t" mit dem Namen "my_sem". In diesem Fall wird „mein SEM“ zusammen mit der "Num" des "int" -Datentyps deklariert. Wir verwenden den folgenden Code „SEM init ()“. Es gibt drei Argumente in diesem „Sem_init.Hier initialisiert der Parameter "& my_sem" das Semaphor als der erste Parameter. Die zweite Option gibt an, wie Sie dieses Semaphor teilen oder verwenden können. Das zweite Argument ist in diesem Fall auf „0“ eingestellt, was darauf hinweist, dass dieses Semaphor nur von Threads verwendet wird, die derzeit betrieben werden.

Der Startwert des Semaphors wird durch den dritten Parameter beschrieben. Hier wird „20“ als ursprünglicher Wert des Semaphors eingegeben. Dann setzen wir die Funktion "sem_post ()" hier und passieren "& my_sem" als Parameter. Die Methode „SEM GetValue ()“ wird dann verwendet, um den Anfangswert des Semaphors abzurufen. Hier werden die Parameter „& My Sem“ und „& num“ übergeben. Dadurch wird die Nummer des Semaphors nach der Ausführung der Funktion „sem_post ()“ zurückgegeben. Sein Anfangswert wird um eins erhöht.

Wenn wir nun die Anweisung „printf“ an diesem Ort eingeben, drucken wir diese Nummer nach der Ausführung der Funktion „sem_post ()“ auf dem Terminalbildschirm. Die eingegebenen Informationen werden auf dem Bildschirm angezeigt.

Um die Ausgabe dieses Codes zu erhalten, haben wir zwei Anweisungen. Der erste Befehl muss das "-lpThread" und "-lrt" enthalten, bevor wir die Eingabetaste klicken können. Wir führen den zweiten Befehl nach der erfolgreichen Zusammenstellung dieses C -Code aus. Die Ausgabe wird dann angezeigt. Sie können aus dieser Ausgabe erkennen, dass der Wert des Semaphors nach dem Eingang „sem_post ()“ von einem erhöht wird und "21" angezeigt wird.

Beispiel # 2:

Wir beginnen unser nächstes Beispiel, indem wir die Header -Dateien „stdio“ platzieren. H ”und„ Semaphor. H". Wir müssen diese Header -Dateien für diesen Code hinzufügen. Jetzt verwenden wir die Funktion „int main ()“. Wir haben ein Semaphor mit dem Namen "new_sem" und deklarieren die "Nummer" als "int" -Datentyp. Wir platzieren die Funktion „sem_init ()“ und geben drei Parameter an, die dafür erforderlich sind. Wir setzen den Anfangswert dieses Semaphors als „20“ ein und verwenden dann die Funktion „sem_post ()“, die ihren Anfangswert um eins erhöht.

Setzen Sie dann die Funktion „sem_getValue ()“ ein und übergeben Sie zwei Parameter dieser Funktion und verwenden Sie die "printf" darunter. Daher wird der inkrementierte Wert auf dem Bildschirm angezeigt. Wir setzen erneut eine weitere Funktion "sem_post ()" und setzen das gleiche Semaphor in diese zweite Funktion "sem_post ()" ein. Verwenden Sie dann erneut den "sem_getValue ()", den wir in unserem vorherigen Beispiel bereits besprochen haben. "Printf" wird zum Drucken des Wertes nach dieser zweiten "sem_post ()" -Funktion verwendet.

Sie können zuerst sehen, dass es den Wert des Semaphors als „21“ druckt, da wir den Anfangswert des Semaphors als „20“ angeben. Nach der Funktion „sem_post ()“ erhöhen sich die Werte um eins und zeigen „21“ an. In der zweiten Zeile ist der Wert des Semaphors "22", weil wir wieder die Funktion "sem_post ()" einstellen.

Beispiel # 3:

Wir aktualisieren den zuvor genannten Code leicht. Der Code ist der gleiche wie der, den wir zuvor eingerichtet haben. Wir platzieren die beiden Header -Dateien „stdio. H ”und„ Semaphor. H ”Das ist für diesen Code notwendig. Wir verwenden auch die Funktion „int main ()“ und deklarieren das Semaphor und den Wert, einen "int" -Datentyp, unter dieser Hauptfunktion. Nachdem wir „SEM init“ verwendet haben, um das Semaphor zu ermitteln und seine Argumente zu verabschieden. Danach drucken Sie es so aus, wie wir bereits erklärt haben. Die Funktion „sem_post ()“ ist neu, die wir hier hinzufügen. Diese Funktion wird verwendet, um den Wert des Semaphors zu erhöhen. Das Ergebnis zeigt, wie die Funktion „sem_post ()“ den Anfangswert dieses Semaphors erhöht. Wir verwenden dann die Funktion "sem_getValue ()" erneut und drucken diesen Wert auch "printf ()".

In dieser Ausgabe wird der Anfangswert des Semaphors zuerst angezeigt und dann der Wert nach der Funktion „sem_post ()“ angezeigt. Sie können feststellen, dass es den Anfangswert des Semaphors erhöht.

Abschluss

Wir schreiben diesen Leitfaden für Sie, um mehr über die Funktion „sem_post ()“ zu erfahren. Diese Anleitung deckte die Codes und Ergebnisse der Funktion "sem_post ()" ab. Die C -Funktion "sem_post ()" wurde in dieser Anleitung behandelt. Wir haben besprochen, wie die Funktion „sem_post ()“ den Wert des Semaphors in C erhöht. Wir haben hier drei separate Beispiele gegeben. Der für die Verwendung der Funktion „sem_post ()“ erforderlichen C -Quellcode wurde zusammen mit der Ausgabe für jedes Beispiel bereitgestellt. Wir hoffen, dass Sie diesen Begriff klar verstehen, nachdem Sie diesen Leitfaden aufmerksam gelesen haben.