2010-12-12 17 views
6

Dolayısıyla, inotify kullanan bir C programı yazmaya çalışıyorum. Daha önce piinotify kullandım, nasıl çalıştığını anladım. Ancak, bazı rehberleri takip ediyorum ve <linux/inotify.h>'u dahil etmemi söylüyor. Sorun şu ki bu başlıkta sadece prototipler değil makro tanımları var. İşlevler <sys/inotify.h>'da prototiplenmiş gibi görünüyor.C üstbilgilerini belirtme

Soruma linux/inotify.h ve sys/inotify.h arasındaki fark nedir? Neden ikisi de var?

cevap

7

sys/inotify.h, GNU C library'un bir parçasıdır. Dosya sistemi değişiklik bildirimlerini almak için programınızın kullanacağı yapıları ve işlevleri ortaya çıkarır. Bildirim sisteminin genel API'si olarak düşünülebilir.

linux/inotify.h, Linux çekirdeğinin bir parçasıdır. Bildirim sisteminin kendisini uygulamak için kullanılan çekirdek yapıları ve sabitleri tanımlar. Kernel modülü gibi bir şey yazmıyorsanız, bu dosyayı eklememelisiniz, çünkü Linux'a özgüdür ve taşınabilir değildir.

+0

sys/inotify.h standart kütüphanenin bir parçası değildir! (Ancak, genellikle bir linux kutusunda bulunan kütüphanelerin bir kısmı) –

+0

@Billy, 'sys/inotify.h',' Bu dosya GNU C kütüphanesinin bir parçasıdır. Paket yöneticim 'glibc' tarafından kurulduğunu söylüyor. Seninki ne diyor? –

+2

@ Frédéric: GNU C Kütüphanesi! = Standart Kitaplık. Standart Kitaplık == ISO/IEC 9899: 1990’ veya ISO/IEC 9899: 1999’dur. –

İlgili konular