今天调 智能卡 程序 犯了一个很 2 的错误,真是丢人丢到家了,不过还是记录下来吧 引以为戒。
strncpy( u8SendData, SC_ATR_Table, u8SendDataIndex );
发现只拷贝了几个数据,没有全部拷贝
随即把程序换成for , 拷贝没有问题,
for( i=0; i < u8SendDataIndex; i++)
u8SendData[i] = SC_ATR_Table[i];
后来查看SC_ATR_Table数组中的数据,发现只拷贝到数据为0的位置,
数据源(src) 和 目的 缓冲区(dest) 都是 数组结构,并且存储的是数据,而非字符串,不能用 字符串拷贝命令,strcpy,strncpy
于是马上改为内存拷贝 memcpy( u8SendData, SC_ATR_Table, u8SendDataIndex );
测试 ok。