そのため、モジュールの初期化時にバッファを動的に割り当てようとしています。バッファは、ユーザースペースプログラムが対話するデータを格納するため、常にスコープ内にある必要があります。だからここに私のコードがあります:
static char* file_data
#define MAX_SIZE 256
.
.
.
{
file_data = kzalloc(MAX_SIZE, GFP_KERNEL)
.
.
.
}
しかし、私がsizeof file_data
それをするとき、それは常に4を返します。私は何が間違っているのですか?
編集:バッファはユーザースペースプログラムからの入力を保存しますが、保存できるのは4文字だけです。
size_t read_file(char* __user buf, size_t count)
{
unsigned int len = 0;
len = copy_to_user(buf, file_data, count);
return count;
}
ssize_t write_file(char* __user buf, size_t count)
{
if(count >= MAX_SIZE)
return -EINVAL;
copy_from_user(file_data, buf,count)
return count;
}