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.