2012-07-31 11 views
5

¿Alguien puede ayudarme a obtener los archivos de encabezado adecuados necesarios para el método copy_from_user?¿En qué encabezado se ha declarado copy_from_user()?

Encontré algunos de los encabezados de inclusión que necesito, pero mi compilador sigue diciendo que no se encuentran. Estoy ejecutando CentOS en mi máquina. He intentado yum instalando varios kernel-headers y paquetes de desarrollo, pero todavía no tuve suerte.

¿Hay algún segmento especial que necesite agregar en mi comando gcc? Todo lo que encuentro en Internet solo me dice cómo usar el método, pero no cómo puedo acceder al mismo en primer lugar.

+0

¿Está codificando un módulo kernel? Si lo hace, necesitará alguna forma específica de compilarlo ... –

Respuesta

11

Supongo que está desarrollando un módulo kernel, porque fuera de eso intentar usar copy_from_user no tendría sentido. De cualquier manera, en el uso del kernel:

#include <linux/uaccess.h> 

Editar: si construcción de un módulo del núcleo es lo que desea, es posible que desee ver en este Hello World Linux Kernel Module. Específicamente, la parte del archivo MAKE puede ser de su interés (busque obj-m).

+0

Todavía estoy aprendiendo sobre la marcha, así que no tenga miedo de explicármelo como si tuviera 5. Me di cuenta de que incluye una declaración pero eso y "asm/uaccess.h" me dicen que no se pueden encontrar después de intentar compilar. ¿Desarrollar un módulo kernel es un proceso diferente a simplemente tratar de compilar un archivo programname.c? Estoy escribiendo un programa que usa otros archivos/métodos de cabecera. Están almacenando una pieza vital de información como "char __user * buf". Estoy tratando de usar ese búfer y almacenarlo en una lista vinculada para usarlo más adelante, pero dado que es un puntero, no puedo conseguir que guarde varios buffers diferentes. – user1566813

+0

Sí, desarrollar un módulo kernel es muy diferente de desarrollar una aplicación regular. Una de las principales razones para desarrollar un módulo kernel es escribir un controlador de dispositivo (para controlar el hardware real con). Si intenta desarrollar una aplicación normal (es decir, una con una función 'main()'), no debería esperar poder utilizar un código que utilice punteros anotados 'copy_from_user' o' __user' tal como están. – Giel

Cuestiones relacionadas