私はこれを頑張っていますが、進歩はありません。(カーネルモジュール)のcopy_to_userにダイナミックアレイを送る方法
カーネルからユーザー空間に動的配列を送信しようとしています。静的配列はユーザー空間に簡単に送信されるようですが、動的配列に対して何か正しいことをしていないと感じました。
int a、char b [100]などの静的変数または固定変数は、 put_userまたはcopy_to_user。しかし、ポインタを渡そうとすると、システムコールは強制終了されるか、エラーが発生します。
copy_to_userを使用して動的配列を送信することはできますか? 私は何週間も自分でこれを解決しようとしてきましたが、私は助けを求めており、あなたの指導を謙虚に求めています。
ありがとうございます。ユーザ空間で
返信いただきありがとうございますが、私はmemcpy [data.items、...]を理解していません。どこで使用して割り当てますか? –
@SunghoHong 'copy_to_user(&from-> items、...)'は 'memcpy(&data.items、...)'と同じです。私はそれがなぜ二番目のものが間違っているのか分かり、そして最初のものがなぜ間違っているのかを類推することで分かりました。 – ephemient
いいえ、カーネル内の追加メモリを 'kmalloc'する必要はありません。すでに 'items'配列があります。正しい場所にコピーするだけです。間違った場所にコピーしています。 – ephemient