sprintf数据长度

           char sw_version_info[20];
.....
            if (__copy_from_user(sw_version_info, (void __user*)arg, 20)) {
                return -EFAULT;
            }
                sprintf(chip, "%s", &sw_version_info[1]);


sw_version_info[20]内容十六进制如下:
01 73 77 20 35 33 31 0a 20 20 66 70 73 65 72 76 65 72 3a 4e

chip为unsigned char chip[32],内容如下:
73 77 20 35 33 31 0a 20 20 66 70 73 65 72 76 65 72 3a 4e c0 ff ff ff 13 b0 8c dc 7f 53 88 cb 10
4e之后的内容通过%s显示为乱码。

若将sw_version_info[20]改sw_version_info[32],如下:
01 73 77 20 35 33 31 0a 20 20 66 70 73 65 72 76 65 72 3a 4e 00 00 00 00 00 fe 77 a6 c0 ff ff ff
chip 如下:
73 77 20 35 33 31 0a 20 20 66 70 73 65 72 76 65 72 3a 4e 00 00 00 00 00 00 00 00 00 00 00 00 00

那乱码的数据是哪里来? sprintf传入的参数格式问题?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值