有信号处理函数哦。
#include <stdio.h> #include <stdlib.h> #include <signal.h> #include <string.h> #include <conio2.h> FILE *f; /* global FILE defined for Ctrl+C Pressed */ static void sig_int(int num) { fprintf(stderr, "get signal from -- Ctrl+C Pressed"); textcolor(15); _pclose(f); } int main(int argc, char **argv) { int i=0, j=0; char buf[1024*2] ={0}; signal(SIGINT, sig_int); /* register signal */ if (argc==2){ for (i=0; i<99; i++){ textcolor(i); printf("%d -> color test\n", i); } textcolor(15); return 1; } f = _popen("adb logcat -v time", "r"); if (f == NULL){ fprintf(stderr, "popen() fail."); return 1; } while(fgets(buf, sizeof(buf), f)>0) { if (strstr(buf, "D/")) textcolor(9); else if (strstr(buf, "W/")) textcolor(14); else if (strstr(buf, "I/")) textcolor(11); else if (strstr(buf, "E/")) textcolor(12); else if (strstr(buf, "V/")) textcolor(13); else textcolor(8); fprintf(stdout, "%s", buf); } _pclose(f); return 0; }