2012-07-31 26 views
5

copy_from_user yöntemi için gereken uygun başlık dosyalarını edinmeme yardımcı olabilir misiniz?copy_from_user() hangi başlıkta bildirildi?

İhtiyacım olan başlık başlıklarından birkaçını buldum, ancak derleyicim bulunmadığını söylüyor. Makinemde CentOS'u çalıştırıyorum. yum'u çeşitli çekirdek-başlıkları ve devel paketleri kurmayı denedim ama yine de hayır şansı.

gcc komutuma eklemem gereken özel bir bölüm var mı? İnternette bulduğum her şey bana sadece metodu nasıl kullanacağımı söyler ama aslında ilk etapta nasıl erişebileceğimi söyleyemez.

+0

Çekirdek bir modül yazıyor musunuz? Eğer yaparsanız, bunu derlemek için belirli bir yola ihtiyacın olacak .... –

cevap

11

Bir çekirdek modülünü geliştirdiğinizi sanıyorum, çünkü bunun dışında copy_from_user kullanmaya çalışmak mantıklı gelmiyor. Çekirdek kullanımında iki şekilde de,:

#include <linux/uaccess.h> 

Düzenleme: bina eğer bir çekirdek modülü bu Hello World Linux Kernel Module bakmak isteyebilirsiniz, istediğiniz şeydir. Özellikle makefile kısmı ilginizi çekebilir (obj-m'u arayın).

+0

Hala giderken öğreniyorum, ben de 5 gibi açıklamamaya korkmayın. ve "asm/uaccess.h" her ikisi de derlemeyi denedikten sonra bulunamadığını söyler. Bir çekirdek modülü, bir programname.c dosyasını derlemeye çalışmaktan farklı bir süreç geliştiriyor mu? Birisi elses üstbilgi dosyalarını/yöntemlerini kullanan bir program yazıyorum. Onlar "char __user * buf" gibi hayati bir bilgiyi saklıyorlar. Bu arabelleği kullanmaya çalışıyorum ve daha sonra kullanmak için bağlantılı bir listede saklıyorum ama bir işaretçi olduğundan, birden çok farklı arabellekleri saklayamam. – user1566813

+0

Evet, bir çekirdek modülü geliştirmek, düzenli bir uygulama geliştirmekten çok farklıdır. Bir çekirdek modülünün geliştirilmesinin başlıca nedenlerinden biri, bir aygıt sürücüsünü yazmaktır (gerçek donanımı kontrol etmek için). Düzenli bir uygulama geliştirmeye çalışıyorsanız (yani, bir 'main()' işlevi olan), 'copy_from_user' veya' __user' açıklamalı işaretçiyi kullandığı kodu kullanabilmeyi beklememelisiniz. – Giel

İlgili konular