嵌入式Linux設(shè)備驅(qū)動(dòng)開發(fā)之:實(shí)驗(yàn)內(nèi)容——test驅(qū)動(dòng)
(6)編寫測(cè)試代碼。
最后一步是編寫測(cè)試代碼,也就是用戶空間的程序,該程序調(diào)用設(shè)備驅(qū)動(dòng)來測(cè)試驅(qū)動(dòng)的運(yùn)行是否正常。以下實(shí)例只實(shí)現(xiàn)了簡(jiǎn)單的讀寫功能,測(cè)試代碼如下所示:
/*test.c*/
#includestdio.h>
#includestdlib.h>
#includestring.h>
#includesys/stat.h>
#includesys/types.h>
#includeunistd.h>
#includefcntl.h>
#defineTEST_DEVICE_FILENAME/dev/test_dev/*設(shè)備文件名*/
#defineBUFF_SZ1024/*緩沖大小*/
intmain()
{
intfd,nwrite,nread;
charbuff[BUFF_SZ];/*緩沖區(qū)*/
/*打開設(shè)備文件*/
fd=open(TEST_DEVICE_FILENAME,O_RDWR);
if(fd0)
{
perror(open);
exit(1);
}
do
{
printf(Inputsomewordstokernel(enter'quit'toexit):);
memset(buff,0,BUFF_SZ);
if(fgets(buff,BUFF_SZ,stdin)==NULL)
{
perror(fgets);
break;
}
buff[strlen(buff)-1]='看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();