Unix Socket - Hilfsfunktionen

In diesem Kapitel werden alle Hilfsfunktionen beschrieben, die bei der Socket-Programmierung verwendet werden. Weitere Hilfsfunktionen sind in den Kapiteln beschrieben -Ports and Servicesund Netzwerk Byte Orders.

Die Schreibfunktion

Die Schreibfunktion versucht, n Byte-Bytes aus dem Puffer, auf den buf zeigt, in die Datei zu schreiben , die dem offenen Dateideskriptor fildes zugeordnet ist .

Sie können auch die Funktion send () verwenden, um Daten an einen anderen Prozess zu senden.

#include <unistd.h>

int write(int fildes, const void *buf, int nbyte);

Nach erfolgreichem Abschluss gibt write () die Anzahl der tatsächlich in die mit fildes verknüpften Dateien geschriebenen Bytes zurück. Diese Zahl ist niemals größer als nbyte. Andernfalls wird -1 zurückgegeben.

Parameter

  • fildes - Es ist ein Socket-Deskriptor, der von der Socket-Funktion zurückgegeben wird.

  • buf - Es ist ein Zeiger auf die Daten, die Sie senden möchten.

  • nbyte- Dies ist die Anzahl der zu schreibenden Bytes. Wenn nbyte 0 ist, gibt write () 0 zurück und hat keine anderen Ergebnisse, wenn die Datei eine reguläre Datei ist. Andernfalls sind die Ergebnisse nicht spezifiziert.

Die Lesefunktion

Die Lesefunktion zu lesen versucht nbyte Bytes aus der Datei mit dem Puffer verbunden ist , fildes, in den Puffer buf von spitz.

Sie können auch die Funktion recv () verwenden, um Daten in einen anderen Prozess zu lesen.

#include <unistd.h>

int read(int fildes, const void *buf, int nbyte);

Nach erfolgreichem Abschluss gibt write () die Anzahl der tatsächlich in die mit fildes verknüpften Dateien geschriebenen Bytes zurück. Diese Zahl ist niemals größer als nbyte. Andernfalls wird -1 zurückgegeben.

Parameter

  • fildes - Es ist ein Socket-Deskriptor, der von der Socket-Funktion zurückgegeben wird.

  • buf - Es ist der Puffer, in den die Informationen eingelesen werden.

  • nbyte - Dies ist die Anzahl der zu lesenden Bytes.

Die Gabel - Funktion

Die Gabelfunktion erstellt einen neuen Prozess. Der neue Prozess, der als untergeordneter Prozess bezeichnet wird, ist eine exakte Kopie des aufrufenden Prozesses (übergeordneter Prozess). Der untergeordnete Prozess erbt viele Attribute vom übergeordneten Prozess.

#include <sys/types.h>
#include <unistd.h>

int fork(void);

Nach erfolgreichem Abschluss gibt fork () 0 an den untergeordneten Prozess und die Prozess-ID des untergeordneten Prozesses an den übergeordneten Prozess zurück. Andernfalls wird -1 an den übergeordneten Prozess zurückgegeben, es wird kein untergeordneter Prozess erstellt und errno wird festgelegt, um den Fehler anzuzeigen.

Parameter

  • void - Es bedeutet, dass kein Parameter erforderlich ist.

Die Bzero- Funktion

Die Funktion bzero platziert nbyte null Bytes in der Zeichenfolge s . Mit dieser Funktion werden alle Socket-Strukturen auf Null gesetzt.

void bzero(void *s, int nbyte);

Diese Funktion gibt nichts zurück.

Parameter

  • s- Es gibt die Zeichenfolge an, die mit Null-Bytes gefüllt werden muss. Dies ist eine Punkt-zu-Socket-Strukturvariable.

  • nbyte- Gibt die Anzahl der Bytes an, die mit Nullwerten gefüllt werden sollen. Dies ist die Größe der Socket-Struktur.

Die bcmp- Funktion

Die Funktion bcmp vergleicht die Bytezeichenfolge s1 mit der Bytezeichenfolge s2. Es wird angenommen, dass beide Zeichenfolgen n Byte lang sind.

int bcmp(const void *s1, const void *s2, int nbyte);

Diese Funktion gibt 0 zurück, wenn beide Zeichenfolgen identisch sind, andernfalls 1. Die Funktion bcmp () gibt immer 0 zurück, wenn nbyte 0 ist.

Parameter

  • s1 - Gibt die erste zu vergleichende Zeichenfolge an.

  • s2 - Gibt die zweite zu vergleichende Zeichenfolge an.

  • nbyte - Gibt die Anzahl der zu vergleichenden Bytes an.

Die bcopy- Funktion

Die bcopy- Funktion kopiert nbyte Bytes von der Zeichenfolge s1 in die Zeichenfolge s2. Überlappende Zeichenfolgen werden korrekt behandelt.

void bcopy(const void *s1, void *s2, int nbyte);

Diese Funktion gibt nichts zurück.

Parameter

  • s1 - Es gibt die Quellzeichenfolge an.

  • s2v - Es gibt die Zielzeichenfolge an.

  • nbyte - Gibt die Anzahl der zu kopierenden Bytes an.

Die Memset- Funktion

Die Memset- Funktion wird auch verwendet, um Strukturvariablen auf die gleiche Weise wie zu setzenbzero. Schauen Sie sich die unten angegebene Syntax an.

void *memset(void *s, int c, int nbyte);

Diese Funktion gibt einen Zeiger auf void zurück. in der Tat ein Zeiger auf den eingestellten Speicher und Sie müssen ihn entsprechend kasten.

Parameter

  • s - Es gibt die einzustellende Quelle an.

  • c - Es gibt das Zeichen an, das an nbyte Stellen gesetzt werden soll.

  • nbyte - Gibt die Anzahl der einzustellenden Bytes an.