📄 iccard-test.c
字号:
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <errno.h>
#include <unistd.h>
int MAX_LEN=88; /* 定义读写的字节数 */
int main()
{ int fd,i; /* fd为将要用到的文件描述符 */
char buf[MAX_LEN],readic[MAX_LEN];
char *icc_filename[]={"/dev/iccard24c02","/dev/iccard24c04","/dev/iccard24c08",
"/dev/iccard24c16","/dev/iccard24c32","/dev/iccard24c64"};
for(i=0;i<MAX_LEN;i++){ /* 给数组赋值 */
buf[i]=i+33;
}
i=0;
while ((fd=open(icc_filename[i],O_RDWR))==-1 ){ /* 打开IC卡设备,如果出错*/
if (i++ < 5)continue;
fprintf(stderr,"Open error %d : no card\n",errno); /* 打印errno变量的值 */
exit(1);
}
printf("Write %d bytes data to %s \n",MAX_LEN,icc_filename[i]);
if(write(fd,buf,MAX_LEN)==-1){
fprintf(stderr,"Write error %d\n",errno);
exit(1);
}
printf("Lseek to 0 \n");
if((lseek(fd,3,SEEK_SET))==-1){
fprintf(stderr,"Lseek error %d\n",errno);
exit(1);
}
printf("\nRead %d bytes data from %s \n",MAX_LEN,icc_filename[i]);
if(read(fd,readic,MAX_LEN)==-1){
fprintf(stderr,"Read error %d\n",errno);
exit(1);
}
if(close(fd)==-1){ /* 关闭IC卡设备 */
fprintf(stderr,"Close error%d\n",errno);
exit(1);
}
for(i=0;i<MAX_LEN;i++){ /* 输出显示读出的数据 */
if((i%8)==0)
printf("\n");
printf("%4c",readic[i]);
}
printf("\n");
return 0; /* 成功返回,程序结束 */
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -