Bu bölümde bir özel akımın gerektirdiği dört kanca işlevin tanımlanması ayrıntılı olarak incelenmiştir.
     
 
Çerezden veri okuyan işlevi şöyle tanımlamalısınız:
     
ssize_t okuyucu (void *çerez, char *tampon, size_t boyut)
Bu işlev 
read işlevine çok benzer; bkz. 
Girdi ve Çıktı İlkelleri.  İşleviniz 
tampon tamponuna 
boyut bayt aktarmalı ve okunan bayt sayısı ile ya da dosyasonunu belirtmek üzere sıfır ile dönmelidir. Hata durumunu belirtmek için  
-1 de döndürebilirsiniz.
     
Çereze veri yazan işlevi şöyle tanımlamalısınız:
     
ssize_t yazıcı (void *çerez, const char *tampon, size_t boyut)
Bu işlev 
write işlevine çok benzer; bkz. 
Girdi ve Çıktı İlkelleri. İşleviniz 
tampon tamponundan 
boyut bayt aktarmalı ve yazılan bayt sayısı ile dönmelidir. Hata durumunu belirtmek için  
-1 de döndürebilirsiniz.
     
Çerez üzerinde konumlama yapan işlevi şöyle tanımlamalısınız:
     
int konumlayıcı (void *çerez, off64_t *konum, int nereden)
Konumlama işleminden sonra, işleviniz sonuçlanan dosya konumunu dosyanın başlangıcına göre konum argümanında saklamalıdır. İşleviniz başarı durumunda 0 ve hata durumunda -1 ile dönmelidir.
     
Akımı kapatırken çerez üzerinde uygulanacak temizlik işlemlerini yapacak işlevi şöyle tanımlamalısınız:
     
int temizleyici (void *çerez)
İşleviniz başarı durumunda 0 ve hata durumunda -1 ile dönmelidir.
      
- 
Bu, bir özel akımın gerektirdiği okuyucu işlevin veri türüdür. İşlevi yukarıdaki gibi tanımlarsanız, bu, o işlevin veri türü olacaktır.
 
- 
Bu, bir özel akımın gerektirdiği yazıcı işlevin veri türüdür. İşlevi yukarıdaki gibi tanımlarsanız, bu, o işlevin veri türü olacaktır.
 
- 
Bu, bir özel akımın gerektirdiği konumlayıcı işlevin veri türüdür.
 
- 
Bu, bir özel akımın gerektirdiği kapatma işlevin veri türüdür.