2016-12-12 85 views
0

我在編寫linux內核模塊時遇到了copy_to_user宏的問題。有了這個代碼:copy_to_user不能在鏈接列表中運行linux內核模塊

int err; 
struct myElement *el; 
list_for_each(cursor,&headList){ 
    el=list_entry(cursor,struct myElement,link); 
    printk("data ptr= %s, data len=%d\n",el->data,el->i); 
    err=copy_to_user(buforUz,el->data,el->i); 
    printk("err=%d\n",err); 
     } 

時,即時通訊使用砍我可以用dmesg的是printk的顯示正確的值(在分配memoery以前保存的字符串指針,它指向字符串存儲在存儲器和串lenght)檢查,但copy_to_user什麼也不復制當即時通訊使用strace的可見其複製0字節:

read(3, "", 65536)      = 0 

什麼都不可能是這個問題的原因是什麼?

回答

0

我發現了這個問題。我的問題是我沒有返回我讀過的長度,但是0是錯誤的,這就是爲什麼它沒有顯示任何東西。