Binden des Systemaufrufs in c

Binden des Systemaufrufs in c
Der System Bind () bindet eine Adresse oder einen Namen mit einem Socket in der C -Sprache. Dieser Systemaufruf wurde hauptsächlich in der Socket -Programmierung verwendet. Diese Adresse wird an den Socket -Deskriptor verbunden. Der System -Aufruf Bind () enthält drei Parameter in der tatsächlichen. Der erste ist der Deskriptor einer Steckdose. Der zweite Parameter ist der Zeiger, der für die Adresse einer Sockel verwendet wird. Die Adresse muss ein lokaler Weg sein. Das dritte Argument kann die Größe einer Sockeladresse haben. Der heutige Leitfaden wird sehen, wie der System „Bind ()“ in Ubuntu 20 funktioniert.04 Verwenden der C -Sprache. Melden Sie sich also zuerst vom System an.

Beispiel:

Öffnen Sie nach der erfolgreichen und ordnungsgemäßen Anmeldung aus dem Benutzerkonto des Linux -Systems die Shell Console -Anwendung. Sie können entweder die Verknüpfungstaste „Strg+Alt+T“ verwenden oder ihn aus dem Desktop -Aktivitätsbereich durchsuchen, um ihn zu starten. Erstellen wir nach dem Start der Terminalkonsole zunächst eine C -Sprachdatei mit der weithin bekannten Abfrage „Berührung“ wie folgt:

Diese Datei wurde im Linux Home -Ordner erstellt. Verwenden Sie zum Öffnen und Bearbeiten dieser Datei einen einfachen Editor. Die am meisten vorgeschlagenen sind vim und gnu. Also haben wir den "GNU" -Nano -Editor verwendet, um die neu gemachte "Neue" zu eröffnen.c ”Datei.

Nachdem die Datei im Editor geöffnet wurde, haben wir den unten angegebenen Code hinzugefügt. Der Code enthält die erforderlichen Bibliotheken, die für die Socked-Programmierung und den Eingabe-Output-Stream enthalten sind. Zu Beginn eines Codes haben wir den Pfad eines Sockel.04. Die Hauptmethode wurde mit einem Ganzzahlvariablen und einem Array -Array -Zeiger des Charaktertyps als Argument initialisiert. Eine Ganzzahlvariable „S“ wurde deklariert. Eine Strukturtypvariable für die Socket -Adresse wurde initialisiert. Die Funktion „Socket“ wurde verwendet, um eine Sockel im Linux -System und einen Socket -Strom mit 0 Größen zu initialisieren. Alle Informationen über den Socket wurden in seinem Deskriptor „S“ gespeichert,. Wenn die Größe eines Sockels „-1“ entspricht, muss sie eine Fehlermeldung abgeben, während Sie die Kompilierung eines Codes beenden.

Die Funktion „Memset“ wurde hier verwendet, um die lokale Socket -Adresse mit der Größe einer bereits definierten Struktur zu binden. Die Familie einer System -Sockeladresse wurde definiert. Danach wurde hier der System Call -Aufruf verwendet. Jetzt kommt der Hauptteil. Wir haben hier die Anweisung "if" verwendet, um den Bind () -Systemaufruf darin zu verwenden. Der Bind -Systemaufruf hat den Socket -Deskriptor abgerufen, die Strukturadresse erhalten und an die lokale Sockeladresse bin. Wenn die Größe einer strukturellen Adresse „-1“ entspricht, wird ein Fehler „Binden“ zusammen mit einer integrierten Fehlermeldung aus dem System unter Verwendung der Funktion „exit_failure“ drucken. Der Code wurde danach gespeichert.

Kompilieren Sie zunächst Ihren Code mit einem „GCC“ -Kompiler, der für die C -Sprache im Linux -System verwendet wird. Führen Sie danach die Datei mit dem „a) aus.OUT ”-Anfrage in der Konsole. Die Ausgabe bringt eine Ausnahme aus, dass die Adresse bereits verwendet wird. Es zeigte das Verzeichnis „Home“ des Linux -Systems an, das immer in den Benutzern verwendet wird.

Lassen Sie uns das gleiche öffnen. „Neu.c ”Datei, um sich ein wenig zu ändern. Wir müssen die gleiche "Nano" -Anfrage in der Konsolenanwendung verwenden, um sie innerhalb eines Editors für die Bearbeitung zu öffnen. Nachdem die Datei ordnungsgemäß geöffnet wurde, haben wir den Socket -Pfad oben im Code geändert. Wir haben den Weg von „zu Hause“ zu „Bildern“ geändert, um ein anderes Ergebnis zu erzielen.

Nach der Zusammenstellung wurde die Datei ausgeführt und erhielt eine weitere Nachricht. Diese Meldung gibt auch den Fehler „Erlaubnis verweigert“ an, auf den Pfad "Bilder" zugreifen zu können.

Abschluss:

Hier ging es also um den Aufruf von Bind () System in C innerhalb des Linux -Betriebssystems. Wir haben eine kurze Erklärung der Socket -Programmierung gegeben. Stellen Sie sicher, dass Sie das Linux -Handbuch für ein klares Verständnis durchlaufen.