1
私が知っている(カーネルスペースで動作している)プログラムが-EFAULT
を返す原因となるいくつかのテストケースを実行しています。印刷されません。 動作または-EFAULT、Linuxカーネル
for (index = 0; index < size; index++){
//copy_from_user checks to make sure input parameter is valid. Returns 0 on success
if(copy_from_user(¤tArrayElement, &data[index], sizeof(long))) {
printk("copy from user error \n");
return -EFAULT;
printk("copy from user error: just returned efault");
}
else {
//parameter is ok
if (currentArrayElement < kernelStats.min)
kernelStats.min = currentArrayElement;
if (currentArrayElement > kernelStats.max)
kernelStats.max = currentArrayElement;
kernelStats.sum += currentArrayElement;
}
}
//print debugging info
printk("Min: %ld Max: %ld Sum: %ld\n", kernelStats.min, kernelStats.max, kernelStats.sum);
ブロックがトリガされた場合、最初は、それはEFAULT
のように思える
EFAULT
があるかどうかは印刷されているようです。これは
EFAULT
の特質ですか?または私は何か間違っているのですか?