send işlevi
write gibidir, ancak fazladan
bayraklar argümanına sahiptir. Olası bayrak değerleri
Soket Verisi Seçenekleri bölümünde anlatılmıştır.
Bu işlev aktarılan bayt miktarı ile veya hata durumunda
-1 ile döner. Soket baskılanamayan kipteyse
send (
write gibi) verinin henüz bir kısmını gönderdikten sonra dönebilir. Baskılanamayan kip hakkında daha fazla bilgi için
Dosya Durum Seçenekleri bölümüne bakınız.
Unutmayalım ki, başarılı bir dönüş değeri her ne kadar verinin hatasız bir şekilde gönderildiğini belirtse de, hatasız bir şekilde alındığını belirtmez.
Aşağıdaki errno hata durumları bu işlev için tanımlanmıştır:
- EBADF
soket soketi geçerli bir dosya tanımlayıcı değil.
- EINTR
- ENOTSOCK
soket dosya tanımlayıcısı bir soket değil.
- EMSGSIZE
Soket türü verinin bütün olarak gönderilmesini gerektiriyor, fakat veri bunun olması için çok büyük.
- EWOULDBLOCK
Soket baskılanamayan kipte ve yazma işlemi soketi baskılar. (Normalde send işlem bitinceye kadar soketi baskılar.)
- ENOBUFS
Yeterli dahili tampon alanı yok.
- ENOTCONN
Bu sokete hiç bağlanmadınız.
- EPIPE
Bu soket bağlıydı ancak bağlantı koptu. Bu durumda, send öncelikle bir SIGPIPE sinyali üretir; sinyal ihmal edilir veya baskılanırsa ya da bu sinyalin yakalayıcısı dönerse send işlevi EPIPE hatası ile sonlanır.
Bu işlev çok evreli yazılımlar için iptal noktası olarak tanımlanmıştır, bu nedenle ayrılan özkaynakların (bellek, dosya tanımlayıcısı, semafor veya her hangi başka bir kaynak) evre iptal edilse dahi serbest bırakılmasının sağlanması şarttır.