Unix Soketi - Yardımcı İşlevler

Bu bölümde, soket programlaması yapılırken kullanılan tüm yardımcı fonksiyonlar açıklanmaktadır. Diğer yardımcı işlevler bölümlerde açıklanmıştır -Ports and Servicesve Ağ Byte Orders.

yazma İşlevi

Yazma tampon yazma nbyte bayt işlev denemeleri ile işaret tampon tamponundan açık dosya tanımlayıcısı ile ilişkili dosya Fildes .

Başka bir işleme veri göndermek için send () işlevini de kullanabilirsiniz .

#include <unistd.h>

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

Başarılı bir şekilde tamamlandıktan sonra write (), fildes ile ilişkilendirilmiş dosyaya gerçekte yazılan bayt sayısını döndürür. Bu sayı hiçbir zaman nbayttan büyük değildir. Aksi takdirde -1 döndürülür.

Parametreler

  • fildes - Soket işlevi tarafından döndürülen bir soket tanımlayıcısıdır.

  • buf - Göndermek istediğiniz verilere bir göstericidir.

  • nbyte- Yazılacak bayt sayısıdır. Eğer nbyte 0 ise, write () 0 döndürür ve dosya normal bir dosyaysa başka sonuç vermez; aksi takdirde sonuçlar belirtilmez.

okuma Fonksiyonu

Okuma tampon tampon ile işaret içine fonksiyon girişimleri, tampon, Fildes ilişkili dosyadan nbyte bayt okuyun.

Ayrıca başka bir işleme veri okumak için recv () işlevini de kullanabilirsiniz .

#include <unistd.h>

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

Başarılı bir şekilde tamamlandıktan sonra write (), fildes ile ilişkilendirilmiş dosyaya gerçekte yazılan bayt sayısını döndürür. Bu sayı hiçbir zaman nbayttan büyük değildir. Aksi takdirde -1 döndürülür.

Parametreler

  • fildes - Soket işlevi tarafından döndürülen bir soket tanımlayıcısıdır.

  • buf - Bilginin okunacağı ara bellektir.

  • nbyte - Okunacak bayt sayısıdır.

çatal İşlevi

Çatal işlevi yeni bir süreç oluşturur. Alt süreç adı verilen yeni süreç, çağıran sürecin (ana süreç) tam bir kopyası olacaktır. Alt süreç, üst süreçten birçok özniteliği miras alır.

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

int fork(void);

Başarılı bir şekilde tamamlandıktan sonra fork (), alt sürece 0 ve alt sürecin süreç kimliğini de üst sürece döndürür. Aksi takdirde -1, üst sürece döndürülür, hiçbir çocuk süreç oluşturulmaz ve hatayı belirtmek için errno ayarlanır.

Parametreler

  • void - Parametre gerekmediği anlamına gelir.

bzero İşlevi

Bzero fonksiyon yerleri nbyte boş dize bayt s . Bu işlev, tüm soket yapılarını boş değerlerle ayarlamak için kullanılır.

void bzero(void *s, int nbyte);

Bu işlev hiçbir şey döndürmez.

Parametreler

  • s- Boş baytlarla doldurulması gereken dizeyi belirtir. Bu, soket yapısı değişkenine bir nokta olacaktır.

  • nbyte- Boş değerlerle doldurulacak bayt sayısını belirtir. Bu, soket yapısının boyutu olacaktır.

bcmp İşlevi

Bcmp fonksiyonu bayt dize s2 karşı bayt dize s1 karşılaştırır. Her iki dizenin de nbyte bayt uzunluğunda olduğu varsayılır.

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

Bu işlev, her iki dizge de aynıysa 0, aksi halde 1 döndürür. Bcmp () işlevi, nbyte 0 olduğunda her zaman 0 döndürür.

Parametreler

  • s1 - Karşılaştırılacak ilk dizgeyi belirtir.

  • s2 - Karşılaştırılacak ikinci dizeyi belirtir.

  • nbyte - Karşılaştırılacak bayt sayısını belirtir.

bcopy İşlevi

Bcopy fonksiyon kopyalar nbyte dize s2 dize s1 den bayt. Çakışan dizeler doğru şekilde işlenir.

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

Bu işlev hiçbir şey döndürmez.

Parametreler

  • s1 - Kaynak dizeyi belirtir.

  • s2v - Hedef dizeyi belirtir.

  • nbyte - Kopyalanacak bayt sayısını belirtir.

memset İşlevi

Memset fonksiyonu da aynı şekilde olarak ayarlamak yapısı değişken için kullanılanbzero. Aşağıda verilen söz dizimine bir göz atın.

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

Bu işlev void'e bir gösterici döndürür; aslında, ayarlanmış belleğe bir işaretçi ve buna göre sınıflandırmanız gerekir.

Parametreler

  • s - Ayarlanacak kaynağı belirtir.

  • c - Nbayt yerlerinde ayarlanacak karakteri belirtir.

  • nbyte - Ayarlanacak bayt sayısını belirtir.