📄 installifd.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 + -