static ssize_t read_test(struct file *file,char *outbuf,size_t count,loff_t *f_pos)
{
copy_to_user(outbuf,kbuf,count);
}
static ssize_t write_test(struct file *file,const char *outbuf,size_t count,loff_t *f_pos)
{
copy_from_user(kbuf,outbuf,count);
return count;
}
其他的程序我忽略了,就是read和write程序,最簡(jiǎn)單的了,kbuf在開(kāi)頭已經(jīng)定義,編寫(xiě)了一個(gè)測(cè)試程序
{
...
scanf("%[^\n]",&outbuf);
printf("A:%s\n", outbuf);
count=strlen(outbuf);
write(testdev,outbuf,count);
memset(outbuf, 0, sizeof(outbuf));
read(testdev,outbuf,1024);
printf("%s\n",outbuf);
close(testdev);
return 0;
}
加載編譯都沒(méi)有問(wèn)題,但在./a.out時(shí) 我輸入hello 顯示出的是hello,問(wèn)題來(lái)了,當(dāng)我再次輸入的時(shí)候,我輸入hi 顯示出的是hillo,輸入比前一個(gè)字符串長(zhǎng)的時(shí)候顯示正常,短的時(shí)候就變成短的那部分進(jìn)行了更換,后面的部分保持原形,這是為什么呀,謝謝!!! |