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

📄 installifd.c

📁 linux下的pcsclite
💻 C
字号:
/* * This is a reader installer for pcsc-lite. * * MUSCLE SmartCard Development ( http://www.linuxnet.com ) * * Copyright (C) 2000-2003 *  David Corcoran <corcoran@linuxnet.com> *  Ludovic Rousseau <ludovic.rousseau@free.fr> * * $Id: installifd.c,v 1.11 2004/08/10 20:04:18 rousseau Exp $ */#include "config.h"#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/stat.h>#include <errno.h>#include "PCSC/wintypes.h"#include "PCSC/winscard.h"#ifndef PCSCLITE_READER_CONFIG#define PCSCLITE_READER_CONFIG "/etc/reader.conf"#endifint main(int argc, char *argv[]){	struct stat statbuf;	char lpcReader[MAX_READERNAME];	char lpcLibrary[FILENAME_MAX];	char *lpcPortID = NULL;	int iPort;	int iStat;	FILE *fd;	printf("Please enter a friendly name for your reader (%d char max)\n",		(int)sizeof(lpcReader));	printf("-----> ");	fgets(lpcReader, sizeof(lpcReader), stdin);	/* remove trailing \n */	lpcReader[strlen(lpcReader)-1] = '\0';  retrylib:	printf("Please enter the full path of the readers driver (%d char max)\n",		(int)sizeof(lpcLibrary));	printf("Example: %s/librdr_generic.so\n", PCSCLITE_HP_DROPDIR);	printf("-----> ");	fgets(lpcLibrary, sizeof(lpcLibrary), stdin);	/* remove trailing \n */	lpcLibrary[strlen(lpcLibrary)-1] = '\0';	iStat = stat(lpcLibrary, &statbuf);	if (iStat != 0)	{		/*		 * Library does not exist 		 */		printf("Library path %s does not exist.\n\n", lpcLibrary);		goto retrylib;	}	printf("Please select the I/O port from the list below:\n");	printf("------------------------------------------------\n");	printf("1) COM1 (Serial Port 1)\n");	printf("2) COM2 (Serial Port 2)\n");	printf("3) COM3 (Serial Port 3)\n");	printf("4) COM4 (Serial Port 4)\n");	printf("5) LPT1 (Parallel Port 1)\n");	printf("6) USR1 (Sym Link Defined)\n");	printf("------------------------------------------------\n");  retryport:	printf("\n");	printf("Enter number (1-6): ");	if ((scanf("%d", &iPort) != 1) || iPort < 1 || iPort > 6)	{		printf("Invalid input (%d) please choose (1-5)\n", iPort);		/* eat the \n */		getchar();		goto retryport;	}	switch (iPort)	{		case 1:			lpcPortID = "0x0103F8";			break;		case 2:			lpcPortID = "0x0102F8";			break;		case 3:			lpcPortID = "0x0103E8";			break;		case 4:			lpcPortID = "0x0102E8";			break;		case 5:			lpcPortID = "0x020378";			break;		case 6:			lpcPortID = "0x000001";			break;	}	printf("\n\n");	printf("Now creating new " PCSCLITE_READER_CONFIG "\n");	fd = fopen(PCSCLITE_READER_CONFIG, "w");	if (fd == NULL)	{		printf("Cannot open file %s: %s\n", PCSCLITE_READER_CONFIG, strerror(errno));		return 1;	}	fprintf(fd, "%s", "# Configuration file for pcsc-lite\n");	fprintf(fd, "%s", "# David Corcoran <corcoran@linuxnet.com\n");	fprintf(fd, "%s", "\n\n");	fprintf(fd, "FRIENDLYNAME     \"%s\"\n", lpcReader);	fprintf(fd, "DEVICENAME       /dev/null\n");	fprintf(fd, "LIBPATH          %s\n", lpcLibrary);	fprintf(fd, "CHANNELID        %s\n", lpcPortID);	fprintf(fd, "%s", "\n\n");	fprintf(fd, "%s", "# End of file\n");	return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -