0
內核模塊(/ dev的)文件在我的內核模塊讀取功能如下:如何讀取用戶空間C
ssize_t aes_read(struct file *filp, char *buf, size_t count, loff_t *f_pos) {
unsigned long aes_reg[4];
aes_reg[0] = leon_load_reg(output_mem_loc);
aes_reg[1] = leon_load_reg(output_mem_loc+4);
aes_reg[2] = leon_load_reg(output_mem_loc+8);
aes_reg[3] = leon_load_reg(output_mem_loc+12);
copy_to_user(buf, (char *)aes_reg, 16);
....
,看來,buf
被正確設置內核模塊中。在用戶空間我寫這篇文章:
int main(int argc, char* argv[]){
FILE *fpaes;
char *str;
int buf[4];
fpaes = fopen("/dev/aes", "r");
fread(str, 16, 1, fpaes);
p_long = (unsigned long *)str;
....
但str
未更新與我期望的值。我被允許以這種方式做fread
還是我離開?
這不會導致你的問題,但不是說它通常最好直接調用系統調用['read(2)'](http://linux.die.net/man/2/read)et al而不是通過stdio層,因爲默認情況下stdio緩衝區讀取和寫入。 –
謝謝,我會考慮到這一點。 – Stuart