2012-07-31 64 views
5

任何人都可以幫助我獲得copy_from_user方法所需的正確頭文件嗎?聲明瞭copy_from_user()的標題是什麼?

我發現了一些我需要的頭文件,但是我的編譯器總是說他們沒有找到。我在我的機器上運行CentOS。我試過yum安裝各種kernel-headers和devel軟件包,但仍然沒有運氣。

在我的gcc命令中是否需要添加特殊段?我在互聯網上找到的所有東西只告訴我如何使用該方法,但實際上並不是我如何能夠首先訪問它。

+0

你正在編碼一個內核模塊嗎?如果你這樣做,你需要一些具體的方式來編譯它...... – 2012-07-31 20:01:34

回答

11

我假設你正在開發一個內核模塊,因爲它外面試圖使用copy_from_user沒有意義。無論哪種方式,在內核中使用:

#include <linux/uaccess.h> 

編輯:如果建設內核模塊是你想要什麼,你可能想看看這個Hello World Linux Kernel Module。具體來說,生成文件部分可能是你感興趣的(搜索obj-m)。

+0

我仍然在學習,所以不要害怕像我一樣向我解釋它5.我注意到包括聲明,但是和「asm/uaccess.h」都告訴我,在編譯後無法找到它們。開發一個內核模塊是一個不同於簡單地編譯一個programname.c文件的過程?我正在編寫一個使用某人頭文件/方法的程序。他們將重要的信息存儲爲「char __user * buf」。我試圖使用該緩衝區並將其存儲在鏈接列表中以供稍後使用,但由於它是一個指針,我無法獲得它以保存多個不同的緩衝區。 – user1566813 2012-07-31 21:02:52

+0

是的,開發一個內核模塊與開發一個常規應用程序非常不同。開發內核模塊的主要原因之一是編寫一個設備驅動程序(以控制真實的硬件)。如果你正在嘗試開發一個常規的應用程序(例如一個帶'main()'函數的應用程序),你不應該期望能夠使用原來使用'copy_from_user'或'__user'註釋指針的代碼。 – Giel 2012-08-01 06:31:48