Gniazdo Unix - funkcje pomocnicze

Ten rozdział opisuje wszystkie funkcje pomocnicze, które są używane podczas programowania gniazd. Inne funkcje pomocnicze opisano w rozdziałach -Ports and Servicesi sieć Byte Orders.

Zapisu Funkcja

Funkcja write próbuje zapisać n-bajtów bajtów z bufora wskazanego przez buf do pliku skojarzonego z deskryptorem otwartego pliku, fildes .

Możesz także użyć funkcji send (), aby wysłać dane do innego procesu.

#include <unistd.h>

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

Po pomyślnym zakończeniu write () zwraca liczbę bajtów faktycznie zapisanych w pliku powiązanym z fildami. Ta liczba nigdy nie jest większa niż nbajtów. W przeciwnym razie zwracane jest -1.

Parametry

  • fildes - Jest to deskryptor gniazda zwracany przez funkcję gniazda.

  • buf - Jest to wskaźnik do danych, które chcesz wysłać.

  • nbyte- Jest to liczba bajtów do zapisania. Jeśli nbyte jest równe 0, write () zwróci 0 i nie da żadnych innych wyników, jeśli plik jest zwykłym plikiem; w przeciwnym razie wyniki są nieokreślone.

Odczytu Funkcja

Funkcja read próbuje odczytać n-bajtowych bajtów z pliku skojarzonego z buforem fildes do bufora wskazywanego przez buf.

Możesz także użyć funkcji recv (), aby wczytać dane do innego procesu.

#include <unistd.h>

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

Po pomyślnym zakończeniu write () zwraca liczbę bajtów faktycznie zapisanych w pliku powiązanym z fildami. Ta liczba nigdy nie jest większa niż nbajtów. W przeciwnym razie zwracane jest -1.

Parametry

  • fildes - Jest to deskryptor gniazda zwracany przez funkcję gniazda.

  • buf - Jest to bufor do wczytywania informacji.

  • nbyte - Jest to liczba bajtów do odczytania.

Widelec Function

Funkcja fork tworzy nowy proces. Nowy proces nazywany procesem potomnym będzie dokładną kopią procesu wywołującego (proces nadrzędny). Proces potomny dziedziczy wiele atrybutów z procesu nadrzędnego.

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

int fork(void);

Po pomyślnym zakończeniu fork () zwraca 0 do procesu potomnego i identyfikator procesu potomnego do procesu nadrzędnego. W przeciwnym razie do procesu nadrzędnego zwracane jest -1, żaden proces potomny nie jest tworzony i ustawiane jest errno, aby wskazać błąd.

Parametry

  • void - Oznacza to, że żaden parametr nie jest wymagany.

Bzero Function

Funkcja bzero umieszcza nbyte null bajtów w łańcuchu s . Ta funkcja służy do ustawiania wszystkich struktur gniazd na wartości null.

void bzero(void *s, int nbyte);

Ta funkcja nic nie zwraca.

Parametry

  • s- Określa ciąg, który ma być wypełniony bajtami zerowymi. Będzie to punkt do zmiennej struktury gniazda.

  • nbyte- Określa liczbę bajtów, które mają być wypełnione wartościami null. Będzie to rozmiar struktury gniazda.

Bcmp Function

Funkcja bcmp porównuje łańcuch bajtów s1 z łańcuchem bajtów s2. Zakłada się, że oba łańcuchy mają długość n-bajtów.

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

Ta funkcja zwraca 0, jeśli oba ciągi są identyczne, 1 w przeciwnym razie. Funkcja bcmp () zawsze zwraca 0, gdy nbyte jest równe 0.

Parametry

  • s1 - Określa pierwszy ciąg do porównania.

  • s2 - Określa drugi ciąg do porównania.

  • nbyte - Określa liczbę bajtów do porównania.

Bcopy Function

Funkcja bcopy kopiuje n-bajtowe bajty z łańcucha s1 do łańcucha s2. Nakładające się ciągi są obsługiwane poprawnie.

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

Ta funkcja nic nie zwraca.

Parametry

  • s1 - Określa ciąg źródłowy.

  • s2v - Określa ciąg docelowy.

  • nbyte - Określa liczbę bajtów do skopiowania.

Memset Function

Funkcja memset służy również do ustawiania zmiennych strukturalnych w taki sam sposób, jakbzero. Spójrz na jego składnię, podaną poniżej.

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

Ta funkcja zwraca wskaźnik do void; w rzeczywistości jest to wskaźnik do pamięci zestawu i musisz go odpowiednio skasować.

Parametry

  • s - Określa źródło do ustawienia.

  • c - Określa znak do ustawienia w miejscach n-bajtowych.

  • nbyte - Określa liczbę bajtów do ustawienia.