当前位置: 技术问答>linux和unix
Linux字符驱动的一个问题?刚学,请高手指点下原因
来源: 互联网 发布时间:2017-01-01
本文导语: 应用程序里: char* gao="0x01"; write(fd,gao,1); 驱动里write函数里有 char data0; copy_from_user(dataTx,buf,sizeof(dataTx)); data0=dataTx[0]; printk{"data0 is %dn",data0}; 问题:为什么打印出来的data0!=0x01????????上面的代码有问题吗? ...
应用程序里:
char* gao="0x01";
write(fd,gao,1);
驱动里write函数里有
char data0;
copy_from_user(dataTx,buf,sizeof(dataTx));
data0=dataTx[0];
printk{"data0 is %dn",data0};
问题:为什么打印出来的data0!=0x01????????上面的代码有问题吗?
char* gao="0x01";
write(fd,gao,1);
驱动里write函数里有
char data0;
copy_from_user(dataTx,buf,sizeof(dataTx));
data0=dataTx[0];
printk{"data0 is %dn",data0};
问题:为什么打印出来的data0!=0x01????????上面的代码有问题吗?
|
char* gao="0x01"; /////////////////这个是字符不是数字,
write(fd,gao,1);
驱动里write函数里有
char data0;
copy_from_user(dataTx,buf,sizeof(dataTx));
data0=dataTx[0];
printk{"data0 is %dn",data0}; ///////这个是按照数值打印出来的,打印出来的是0的ascii码。
你要打印 1出来,需要在应用里面传个1过去,这样
char* gao="0x01"; /////////////////这个是字符不是数字,
*gao = 1;
write(fd,gao,1);
write(fd,gao,1);
驱动里write函数里有
char data0;
copy_from_user(dataTx,buf,sizeof(dataTx));
data0=dataTx[0];
printk{"data0 is %dn",data0}; ///////这个是按照数值打印出来的,打印出来的是0的ascii码。
你要打印 1出来,需要在应用里面传个1过去,这样
char* gao="0x01"; /////////////////这个是字符不是数字,
*gao = 1;
write(fd,gao,1);
|
copy_from_user(dataTx,buf,sizeof(dataTx));
--->
copy_from_user(dataTx,buf,sizeof(buf));
或
copy_from_user(dataTx,buf,1);
--->
copy_from_user(dataTx,buf,sizeof(buf));
或
copy_from_user(dataTx,buf,1);
|
printk{"data0 is %dn",data0};
传字符串进去,却打印数字,不知道lz的需求是什么
传字符串进去,却打印数字,不知道lz的需求是什么