Linux系统编程---记录终端输入的命令

来源:互联网 发布:it桔子网 编辑:程序博客网 时间:2024/05/29 14:29

纯干货的,代码拿来:

#include <stdio.h>#include <stdlib.h>#include <unistd.h>char *menu[] ={"a - add new record","d - delete record","q -quit",NULL,};int getchoice(char *greet, char *choices[], FILE *in, FILE *out);int main(){int choice = 0;FILE *input;FILE *output;if (!isatty(fileno(stdout))){fprintf(stderr, "You are not a terminal,OK.\n");}input = fopen("/dev/tty","r");output = fopen("/dev/tty","w");if (!input || !output){fprintf(stderr, "Unable to open /dev/tty\n");exit(1);}do {choice = getchoice("Please select an action",menu,input,output);printf("You have chosen: %c\n", choice);}while(choice != 'q');exit(0);}int getchoice(char *greet, char *choices[], FILE *in, FILE *out){int chosen = 0;int selected;char **option;do{fprintf(out,"Choice : %s\n", greet);option = choices;while (*option){fprintf(out,"%s\n",*option);option++;}do{selected = fgetc(in);}while(selected =='\n');option = choices;while(*option){if (selected == *option[0]){chosen = 1;break;}option++;}if(!chosen){fprintf(out,"Incorrect choice, select again ,OK?\n");}}while(!chosen);return selected;}
搞了半夜才解除了一个bug!必须要记录一下。



0 0
原创粉丝点击