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.