write işlevi dosyatanıtıcı tanıtıcılı dosyaya
tampon tamponundaki boyut baytı yazar. tampon içindeki veri bir karakter dizgesi olması gerekmediği gibi bir boş karakter de sıradan bir karakter olarak ele alınır.
   
İşlevin normal dönüş değeri yazılabilen baytların sayısıdır. Bu boyut sayıda olabileceği halde hep daha küçük olur. Yazılımınızda işlevi, tüm veriyi yazana kadar tekrarlanan write çağrıları şeklinde bir döngü içinde kullanmalısınız.
   
write döndükten hemen sonra kuyruklanan veri okunabilir. Bunun için verinin kalıcı bir saklama alanına yazılması şart değildir. Devam etmeden önce verinin kalıcı saklama alanına yazılmasını sağlamak için 
fsync kullanablirsiniz. (Yazma işlemini peşpeşe çağrılar şeklinde bir defada gerçekleştirip saklama alanına yazma işini sisteme bırakmak daha verimlidir. Normalde bu veri diske bir dakikadan daha geç yazılmaz.) Günümüz sistemlerinde 
fdatasync adında bir işlev daha vardır ve bununla dosya verisinin bütünlüğü garanti edilmiştir ve daha hızlıdır. Dosyayı  
O_FSYNC kipinde açarsanız 
write çağrıları veri diske yazılmadan dönmeyecektir; bkz.  
G/Ç İşlem Kipleri.
   
 
Hata durumunda işlev -1 ile döner. Aşağıdaki errno hata durumları bu işlev için tanımlanmıştır:
   
- EAGAIN
- 
Normalde, yazma işlemi tamamlanana kadar  write-  dönmez. Fakat  O_NONBLOCK-  seçeneği etkinse (bkz.  Dosyalar Üzerindeki Denetim İşlemleri- ), hiçbir veri yazılmadan işlev hemen bu hata durumu ile döner. Bu duruma bir örnek vermek gerekirse, sürecin bir STOP karakteri aldığında, akış denetimini destekleyen bir uçbirim aygıtına çıktının  yazılmasını engellemesi verilebilir.
       
|  | Uyumluluk Bilgisi | 
|---|
 | BSD Unix'in çoğu sürümü bu hata kodu için farklı bir hata kodu kullanır: EWOULDBLOCK.  GNU kütüphanesinde EWOULDBLOCK, EAGAIN için bir takma addır, dolayısıyla hangi ismin kullanıldığının bir önemi yoktur. |  
 
- 
Bazı sistemlerde, çekirdek kullanıcı sayfaları için yeterli fiziksel bellek bulamazsa, bir karakter özel dosyasına büyük miktarda veri yazılması da EAGAIN hata koduna sebep olur. Bu, kullanıcı belleğine doğrudan bellek erişimi ile iletim yapan aygıtlarla sınırlıdır. Bunlar uçbirimleri kapsamaz, çünkü uçbirimler için çekirdek içinde daima ayrı tamponlar vardır. GNU kütüphanesinde böyle bir sorunla asla karşılaşmayacaksınız.
       
- EBADF
- 
dosyatanıtıcı argümanı geçerli bir dosya tanıtıcı değil ya da yazma amacıyla açılmamış
       
- EFBIG
- 
Dosya boyutu gerçeklemenin desteklediğinden büyük
       
- EINTR
- 
write-  işlemi tamamlanmadan önce bir sinyal tarafından durduruldu. Bir sinyal her zaman  write-  işlevinin  EINTR-  döndürmesine sebep olmaz; istenenden daha az baytı yazarak da işlev başarılı olabilir. Bkz.  Sinyallerle Kesilen İlkeller- .
       
 
- EIO
- 
Çoğu aygıt ve disk dosyası için bu hata kodu bir donanım hatasını işaret eder.
       
- ENOSPC
- 
Aygıtın dosyası dolu.
       
- EPIPE
- 
Bu hata bir süreç tarafından okumak için açılmamış bir boru ya da FIFO'ya yazmaya çalışırsanız oluşur. Bu oluştuğu zaman sürece bir  SIGPIPE-  sinyali gönderilir; bkz.  Sinyal İşleme- .
       
- EINVAL
- 
Bazı sistemlerde bir karakter veya blok aygıtından okuma yapılırken, konum ve boyut başlangıçları belli bir blok boyuna hizalanmalıdır. Bu hata başlangıçların gerektiği gibi hizalanmadığını belirtir.
       
EINTR başarısızlıklarından korunmak için bir düzenleme yapmadıkça,  her başarısız 
write çağrısından sonra 
errno değişkenine bakmalı ve bu 
EINTR hatası ise çağrıyı tekrarlamalısınız. Bkz. 
Sinyallerle Kesilen İlkeller.  Bunu yapmanın kolay bir yolu 
TEMP_FAILURE_RETRY makrosunu kullanmaktır:
   
 
nbytes = TEMP_FAILURE_RETRY (write (desc, buffer, count));
write64 isminde bir işlevin olmadığını unutmayın. İşlev olası geniş dosya konumlarını işlemek ya da değiştirmek için bir işlem yapmadığından bu gerekli değidir. Çekirdek gerekeni kendi içinde hallettiğinden write işlevi her durumda kullanılabilir.
   
Bu işlev çok evreli yazılımlarda bir iptal noktasıdır. write çağrısı sırasında evre bazı özkaynakları (bellek, dosya tanıtıcı, semafor, vb.) ayırdığında bu bir sorun olur. Evre tam bu anda bir iptal alırsa ayrılan özkaynaklar yazılım sonlanana kadar ayrılmış olarak kalır. Bu tür write çağrılarından kaçınmak için iptal eylemcileri kullanılarak korunulmalıdır.
   
write işlevi, akımlardan okuma yapan fputc gibi işlevlerin düşük seviyedeki karşılığıdır.