2012-07-31 16 views
5

Czy ktoś może mi pomóc uzyskać odpowiednie pliki nagłówkowe potrzebne do metody copy_from_user?W jakim nagłówku zadeklarowano copy_from_user()?

Znalazłem kilka nagłówków include, których potrzebuję, ale mój kompilator powtarza, że ​​nie zostały znalezione. Używam CentOS na moim komputerze. Próbowałem yum instalowanie różnych pakietów nagłówków jądra i devel, ale wciąż nie ma szczęścia.

Czy istnieje specjalny segment, który muszę dodać w poleceniu gcc? Wszystko, co znajduję w Internecie, mówi mi tylko, jak używać tej metody, ale nie w jaki sposób mogę uzyskać do niej dostęp.

+0

Czy kodujesz moduł jądra? Jeśli to zrobisz, będziesz potrzebował jakiegoś specyficznego sposobu kompilacji ... –

Odpowiedz

11

Zakładam, że opracowujesz moduł jądra, ponieważ próba użycia go pod numerem copy_from_user nie ma sensu. Tak czy inaczej, w zastosowaniu jądra:

#include <linux/uaccess.h> 

Edit: jeśli budowy moduł jądra jest to, co chcesz, możesz spojrzeć na ten Hello World Linux Kernel Module. W szczególności może zainteresować Cię plik makefile (wyszukaj obj-m).

+0

Wciąż się uczę, jak idę, więc nie obawiaj się wytłumaczyć mi to tak, jakbym był 5. Zauważyłem, że to stwierdzenie, ale to i "asm/uaccess.h" obaj mówią mi, że nie można ich znaleźć po próbie kompilacji. Czy opracowanie modułu jądra jest procesem innym niż po prostu próba skompilowania pliku programname.c? Piszę program, który używa jakichś plików/metod nagłówkowych. Przechowują istotną informację jako "char __user * buf". Próbuję użyć tego bufora i zapisać go na liście połączonej, aby użyć go później, ale ponieważ jest to wskaźnik, nie mogę go zapisać, aby zapisać wiele różnych buforów. – user1566813

+0

Tak, opracowanie modułu jądra znacznie różni się od tworzenia zwykłej aplikacji. Jednym z głównych powodów opracowania modułu jądra jest napisanie sterownika urządzenia (do sterowania rzeczywistym sprzętem). Jeśli próbujesz utworzyć zwykłą aplikację (to znaczy taką z funkcją 'main()'), nie powinieneś oczekiwać, że będziesz w stanie używać kodu, który używa wskaźników "copy_from_user' lub" __user' jako takich, jakie są. – Giel

Powiązane problemy