亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? flthdr.c

?? embedded system 檔案格式轉換工具源代碼
?? C
字號:
/****************************************************************************//* *	A simple program to manipulate flat files * *	Copyright (C) 2001 SnapGear Inc, davidm@snapgear.com *	Copyright (C) 2001 Lineo, davidm@lineo.com *//****************************************************************************/#include <stdio.h>#include <getopt.h>#include <unistd.h>#include "flat.h"/****************************************************************************/char *program_name;static char cmd[1024];static int print = 0, compress = 0, ramload = 0, stacksize = 0;static int short_format = 0;/****************************************************************************/voidtransferr(FILE *ifp, FILE *ofp, int count){	int n, num;	while (count == -1 || count > 0) {		if (count == -1 || count > sizeof(cmd))			num = sizeof(cmd);		else			num = count;		n = fread(cmd, 1, num, ifp);		if (n == 0)			break;		if (fwrite(cmd, n, 1, ofp) != 1) {			fprintf(stderr, "Write failed :-(\n");			exit(1);		}		if (count != -1)			count -= n;	}	if (count > 0) {		fprintf(stderr, "Failed to transferr %d bytes\n", count);		exit(1);	}}	/****************************************************************************/voidprocess_file(char *ifile, char *ofile){	int old_flags, old_stack, new_flags, new_stack;	FILE *ifp, *ofp;	struct flat_hdr old_hdr, new_hdr;	char tfile[256];	char tfile2[256];	*tfile = *tfile2 = '\0';	if ((ifp = fopen(ifile, "r")) == NULL) {		fprintf(stderr, "Cannot open %s\n", ifile);		return;	}	if (fread(&old_hdr, sizeof(old_hdr), 1, ifp) != 1) {		fprintf(stderr, "Cannot read header of %s\n", ifile);		return;	}	if (strncmp(old_hdr.magic, "bFLT", 4) != 0) {		fprintf(stderr, "Cannot read header of %s\n", ifile);		return;	}	new_flags = old_flags = ntohl(old_hdr.flags);	new_stack = old_stack = ntohl(old_hdr.stack_size);	new_hdr = old_hdr;	if (compress == 1) {		new_flags |= FLAT_FLAG_GZIP;		new_flags &= ~FLAT_FLAG_GZDATA;	} else if (compress == 2) {		new_flags |= FLAT_FLAG_GZDATA;		new_flags &= ~FLAT_FLAG_GZIP;	} else if (compress < 0)		new_flags &= ~(FLAT_FLAG_GZIP|FLAT_FLAG_GZDATA);		if (ramload > 0)		new_flags |= FLAT_FLAG_RAM;	else if (ramload < 0)		new_flags &= ~FLAT_FLAG_RAM;		if (stacksize)		new_stack = stacksize;	if (print == 1) {		printf("%s\n", ifile);		printf("    Magic:        %4.4s\n", old_hdr.magic);		printf("    Rev:          %d\n",    ntohl(old_hdr.rev));		printf("    Entry:        0x%x\n",  ntohl(old_hdr.entry));		printf("    Data Start:   0x%x\n",  ntohl(old_hdr.data_start));		printf("    Data End:     0x%x\n",  ntohl(old_hdr.data_end));		printf("    BSS End:      0x%x\n",  ntohl(old_hdr.bss_end));		printf("    Stack Size:   0x%x\n",  ntohl(old_hdr.stack_size));		printf("    Reloc Start:  0x%x\n",  ntohl(old_hdr.reloc_start));		printf("    Reloc Count:  0x%x\n",  ntohl(old_hdr.reloc_count));		printf("    Flags:        0x%x ( ",  ntohl(old_hdr.flags));		if (old_flags) {			if (old_flags & FLAT_FLAG_RAM)				printf("Load-to-Ram ");			if (old_flags & FLAT_FLAG_GOTPIC)				printf("Has-PIC-GOT ");			if (old_flags & FLAT_FLAG_GZIP)				printf("Gzip-Compressed ");			if (old_flags & FLAT_FLAG_GZDATA)				printf("Gzip-Data-Compressed ");			printf(")\n");		}	} else if (print > 1) {		static int first = 1;		unsigned int text, data, bss, stk, rel, tot;		if (first) {			printf("Flag Rev   Text   Data    BSS  Stack Relocs    RAM Filename\n");			printf("-----------------------------------------------------------\n");			first = 0;		}		*tfile = '\0';		strcat(tfile, (old_flags & FLAT_FLAG_RAM) ? "r" : "");		strcat(tfile, (old_flags & FLAT_FLAG_GOTPIC) ? "p" : "");		strcat(tfile, (old_flags & FLAT_FLAG_GZIP) ? "z" :					((old_flags & FLAT_FLAG_GZDATA) ? "d" : ""));		printf("-%-3.3s ", tfile);		printf("%3d ", ntohl(old_hdr.rev));		printf("%6d ", text=ntohl(old_hdr.data_start)-sizeof(struct flat_hdr));		printf("%6d ", data=ntohl(old_hdr.data_end)-ntohl(old_hdr.data_start));		printf("%6d ", bss=ntohl(old_hdr.bss_end)-ntohl(old_hdr.data_end));		printf("%6d ", stk=ntohl(old_hdr.stack_size));		printf("%6d ", rel=ntohl(old_hdr.reloc_count) * 4);		/*		 * work out how much RAM is needed per invocation, this		 * calculation is dependent on the binfmt_flat implementation		 */		tot = data; /* always need data */		if (old_flags & (FLAT_FLAG_RAM|FLAT_FLAG_GZIP))			tot += text + sizeof(struct flat_hdr);				if (bss + stk > rel) /* which is bigger ? */			tot += bss + stk;		else			tot += rel;		printf("%6d ", tot);		/*		 * the total depends on whether the relocs are smaller/bigger than		 * the BSS		 */		printf("%s\n", ifile);	}	/* if there is nothing else to do, leave */	if (new_flags == old_flags && new_stack == old_stack)		return;		new_hdr.flags = htonl(new_flags);	new_hdr.stack_size = htonl(new_stack);	strcpy(tfile, "/tmp/flatXXXXXX");	mkstemp(tfile);	if ((ofp = fopen(tfile, "w")) == NULL) {		fprintf(stderr, "Failed to open %s for writing\n", tfile);		unlink(tfile);		unlink(tfile2);		exit(1);	}	if (fwrite(&new_hdr, sizeof(new_hdr), 1, ofp) != 1) {		fprintf(stderr, "Failed to write to  %s\n", tfile);		unlink(tfile);		unlink(tfile2);		exit(1);	}	/*	 * get ourselves a fully uncompressed copy of the text/data/relocs	 * so that we can manipulate it more easily	 */	if (old_flags & (FLAT_FLAG_GZIP|FLAT_FLAG_GZDATA)) {		FILE *tfp;		strcpy(tfile2, "/tmp/flat2XXXXXX");		mkstemp(tfile2);				if (old_flags & FLAT_FLAG_GZDATA) {			tfp = fopen(tfile2, "w");			if (!tfp) {				fprintf(stderr, "Failed to open %s for writing\n", tfile2);				exit(1);			}			transferr(ifp, tfp, ntohl(old_hdr.data_start) -					sizeof(struct flat_hdr));			fclose(tfp);		}		sprintf(cmd, "gunzip >> %s", tfile2);		tfp = popen(cmd, "w");		transferr(ifp, tfp, -1);		fclose(tfp);		fclose(ifp);		ifp = fopen(tfile2, "r");		if (!ifp) {			fprintf(stderr, "Failed to open %s for reading\n", tfile2);			unlink(tfile);			unlink(tfile2);			exit(1);		}	}	if (new_flags & FLAT_FLAG_GZIP) {		printf("zflat %s --> %s\n", ifile, ofile);		fclose(ofp);		sprintf(cmd, "gzip -9 -f >> %s", tfile);		ofp = popen(cmd, "w");	} else if (new_flags & FLAT_FLAG_GZDATA) {		printf("zflat-data %s --> %s\n", ifile, ofile);		transferr(ifp, ofp, ntohl(new_hdr.data_start) -				sizeof(struct flat_hdr));		fclose(ofp);		sprintf(cmd, "gzip -9 -f >> %s", tfile);		ofp = popen(cmd, "w");	}	if (!ofp) { /* can only happen if using gzip/gunzip */		fprintf(stderr, "Can't run cmd %s\n", cmd);		unlink(tfile);		unlink(tfile2);		exit(1);	}	transferr(ifp, ofp, -1);		if (ferror(ifp) || ferror(ofp)) {		fprintf(stderr, "Error on file pointer%s%s\n",				ferror(ifp) ? " input" : "", ferror(ofp) ? " output" : "");		unlink(tfile);		unlink(tfile2);		exit(1);	}	fclose(ifp);	fclose(ofp);	/* cheat a little here to preserve file permissions */	sprintf(cmd, "cp %s %s", tfile, ofile);	system(cmd);	unlink(tfile);	unlink(tfile2);}/****************************************************************************/voidusage(char *s){	if (s)		fprintf(stderr, "%s\n", s);	fprintf(stderr, "usage: %s [options] flat-file\n", program_name);	fprintf(stderr, "       Allows you to change an existing flat file\n\n");	fprintf(stderr, "       -p      : print current settings\n");	fprintf(stderr, "       -z      : compressed flat file\n");	fprintf(stderr, "       -d      : compressed data-only flat file\n");	fprintf(stderr, "       -Z      : un-compressed flat file\n");	fprintf(stderr, "       -r      : ram load\n");	fprintf(stderr, "       -R      : do not RAM load\n");	fprintf(stderr, "       -s size : stack size\n");	fprintf(stderr, "       -o file : output-file\n"	                "                 (default is to modify input file)\n");	exit(1);}/****************************************************************************/intmain(int argc, char *argv[]){	int c;	char *ofile = NULL, *ifile;	program_name = argv[0];	while ((c = getopt(argc, argv, "pdzZrRs:o:")) != EOF) {		switch (c) {		case 'p': print = 1;                break;		case 'z': compress = 1;             break;		case 'd': compress = 2;             break;		case 'Z': compress = -1;            break;		case 'r': ramload = 1;              break;		case 'R': ramload = -1;             break;		case 's': stacksize = atoi(optarg); break;		case 'o': ofile = optarg;           break;		default:			usage("invalid option");			break;		}	}	if (optind >= argc)		usage("No input files provided");	if (ofile && argc - optind > 1)		usage("-o can only be used with a single file");		if (!print && !compress && !ramload && !stacksize) /* no args == print */		print = argc - optind; /* greater than 1 is short format */		for (c = optind; c < argc; c++) {		ifile = argv[c];		if (!ofile)			ofile = ifile;		process_file(ifile, ofile);		ofile = NULL;	}		exit(0);}/****************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
婷婷国产在线综合| 亚洲精品成人在线| 欧美一区二区三区思思人| 色av一区二区| 欧洲在线/亚洲| 色婷婷精品久久二区二区蜜臀av| 粉嫩绯色av一区二区在线观看| 国内精品久久久久影院薰衣草| 久久99精品视频| 国产在线播放一区三区四| 激情综合网天天干| 国产在线观看免费一区| 国产成人在线看| 成人激情小说网站| 色噜噜狠狠色综合中国| 欧美日韩国产另类一区| 日韩欧美一区二区在线视频| 精品日韩在线观看| 国产日韩av一区二区| 亚洲欧洲一区二区在线播放| 一区二区三区中文在线| 日韩国产一二三区| 国产在线一区二区| 99久久免费视频.com| 欧美在线观看视频在线| 在线综合+亚洲+欧美中文字幕| 日韩欧美国产一区二区在线播放| 日韩欧美视频一区| 中文字幕成人网| 亚洲国产精品视频| 老司机一区二区| av成人动漫在线观看| 欧美日韩在线综合| 久久久国产一区二区三区四区小说 | 中文幕一区二区三区久久蜜桃| 国产精品蜜臀av| 天天综合天天做天天综合| 极品少妇一区二区| 在线欧美小视频| 久久一区二区三区四区| 亚洲猫色日本管| 蜜臀久久99精品久久久久宅男| 国产v日产∨综合v精品视频| 欧美三片在线视频观看| 久久久九九九九| 亚洲国产成人porn| 成人性视频网站| 日韩一区二区视频| 亚洲激情中文1区| 国产成人精品免费| 欧美高清视频一二三区 | 《视频一区视频二区| 日韩国产精品久久久久久亚洲| 国产91精品精华液一区二区三区 | 欧美色大人视频| 中文字幕免费观看一区| 日本欧美肥老太交大片| 成人黄色在线视频| 欧美mv和日韩mv国产网站| 亚洲精品菠萝久久久久久久| 国产99久久久国产精品潘金网站| 欧美探花视频资源| 亚洲欧洲另类国产综合| 国产激情精品久久久第一区二区| 欧美视频一区二区三区四区| 日韩美女久久久| 国产a区久久久| 久久一二三国产| 免费一级欧美片在线观看| 色94色欧美sute亚洲13| 亚洲欧美色一区| av一区二区久久| 中文字幕一区二区三区四区不卡| 国产激情精品久久久第一区二区| 精品日韩在线一区| 久久精品国产澳门| 精品国产一区二区三区不卡| 日韩国产欧美在线播放| 欧美精品日韩综合在线| 亚洲国产毛片aaaaa无费看| 欧美性一区二区| 亚洲成a人v欧美综合天堂下载| 色94色欧美sute亚洲线路一ni| 自拍偷拍欧美激情| 色香蕉成人二区免费| 一区二区高清免费观看影视大全 | 亚洲va在线va天堂| 精品婷婷伊人一区三区三| 亚洲国产视频在线| 欧美美女喷水视频| 麻豆91精品91久久久的内涵| 亚洲精品一区二区三区影院 | 久久久亚洲欧洲日产国码αv| 国内精品视频一区二区三区八戒 | 国产精品丝袜在线| 99视频超级精品| 亚洲国产精品一区二区www在线| 欧美在线播放高清精品| 日本伊人午夜精品| 久久婷婷色综合| 波多野结衣欧美| 午夜精品影院在线观看| 欧美电影免费观看高清完整版在线| 老司机一区二区| 中文字幕欧美三区| 欧洲视频一区二区| 麻豆一区二区三| 国产精品国产三级国产专播品爱网 | 免费成人美女在线观看| 久久亚洲精品国产精品紫薇| 97精品超碰一区二区三区| 亚洲国产裸拍裸体视频在线观看乱了| 91精品国产aⅴ一区二区| 国产中文一区二区三区| 亚洲另类在线视频| 日韩三级中文字幕| 97久久超碰国产精品电影| 日韩精品欧美成人高清一区二区| 久久久久高清精品| 欧美老肥妇做.爰bbww| 国产成人99久久亚洲综合精品| 亚洲国产日韩av| 国产欧美精品在线观看| 欧美一三区三区四区免费在线看| 懂色中文一区二区在线播放| 性感美女久久精品| 国产精品久久久久aaaa樱花 | 国内国产精品久久| 亚洲国产精品一区二区尤物区| 国产无遮挡一区二区三区毛片日本 | 国产乱码精品一区二区三区忘忧草| 一区二区三区资源| 国产人久久人人人人爽| 日韩一级完整毛片| 欧美色综合影院| bt欧美亚洲午夜电影天堂| 捆绑调教美女网站视频一区| 一区二区欧美视频| 亚洲区小说区图片区qvod| 久久久久亚洲综合| 91精品国产高清一区二区三区 | 一区二区三区资源| 国产精品日韩精品欧美在线| 日韩欧美123| 欧美一区二区三区啪啪| 欧美伦理影视网| 在线观看成人小视频| 91蜜桃网址入口| 99视频一区二区三区| 成人短视频下载| 成人免费的视频| 成人免费三级在线| 国产大陆a不卡| 国产盗摄视频一区二区三区| 国产一区免费电影| 国产成人精品综合在线观看 | 成人av在线电影| 国产成人欧美日韩在线电影| 国产一区二区伦理| 国产乱码一区二区三区| 国产精品1区2区3区在线观看| 精品在线免费观看| 国产一区二区在线观看视频| 国产一区 二区| 岛国av在线一区| 成人美女在线视频| 99精品视频一区二区| 色天使久久综合网天天| 欧美中文字幕一区二区三区 | 午夜不卡av免费| 日韩黄色在线观看| 激情综合网激情| 成人听书哪个软件好| 91在线播放网址| 欧美乱妇一区二区三区不卡视频| 欧美一区二区在线观看| 欧美精品一区二区三区蜜桃| 日本一二三不卡| 一区二区三区国产精华| 三级久久三级久久久| 精品在线观看视频| 成人免费毛片嘿嘿连载视频| 在线精品视频免费观看| 日韩欧美视频在线| 中文字幕在线不卡视频| 亚洲影视在线播放| 久久国产免费看| av综合在线播放| 91精品国产全国免费观看| 国产欧美久久久精品影院| 一区二区三区在线观看国产| 美日韩一区二区三区| eeuss影院一区二区三区| 欧美精品1区2区| 亚洲欧美在线高清| 麻豆精品在线视频| 色哟哟日韩精品| 久久久久99精品一区| 图片区小说区国产精品视频| 国产a久久麻豆|