2016-12-12 20 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); 
     } 

イム、私のprintkが正しい値(割り当てmemoeryで以前に保存された文字列、文字列が格納されるメモリと文字列な長さへのポインタ)を示すことをdmesgのに確認することができるカットを用いるがcopy_to_user:このコードと何もコピーしない。私がstraceを使用しているとき、それは0バイトをコピーしたことを示します:

read(3, "", 65536)      = 0 

この問題の原因は何でしょうか?

答えて

0

問題が見つかりました。私の問題は、私が読んだ長さを返さなかったことですが、0は間違っているので、何も表示されませんでした。

関連する問題