adb程序彩色输出

有信号处理函数哦。

#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;

}


你可能感兴趣的:(adb)