⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iccard-test.c

📁 在嵌入式系统中进行非接触式ic卡读写测试的代码
💻 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 + -