⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cploader.c

📁 进行arm-linux嵌入式系统开发时
💻 C
字号:
/** * Title: cploader.c * Type: C (*.c) * Complier: gcc version 3.3.2 20031022 (Red Hat Linux 3.3.2-1) * Description: send file to armboard's flash * Copyright: Copyright (c) 2004 * Company: djws * author djws * version 1.0 *//* Copy The Client's Binary Program to Main Program */#include <stdlib.h>#include <stdio.h>#include <string.h>longflen(FILE *fp) {	int i = 0;	if(fp == NULL)		return 0;	if(fseek(fp, 0, SEEK_SET))		return 0;	while(!feof(fp)) {		i++;		fgetc(fp);	}	if(fseek(fp, 0, SEEK_SET))		return 0;	return i-1;}intmain(int argc, char** argv) {	char schstr[128];	char mainprog[128];	char binprog[128];	FILE *binfp;	FILE *mainfp;	char *buf;	char tmp[128];	int len = 0;	int i, j;	if(argc < 4) {		strcpy(schstr, "Copy Client Binary Program Here...");	}	else {		if(strlen(argv[3]) >= 128)			argv[3][127] = '\0';		strcpy(schstr, argv[3]);	}	if(argc < 3) {		strcpy(binprog, "loader.bin");	}	else {		if(strlen(argv[2]) > 128)			argv[2][127] = '\0';		strcpy(binprog, argv[2]);	}	if(argc < 2) {		strcpy(mainprog, "download");	}	else {		if(strlen(argv[1]) > 128)			argv[1][127] = '\0';		strcpy(binprog, argv[1]);	}	if((mainfp=fopen(mainprog, "rb+")) == NULL) {		printf("fail to open the file: %s\nexit.\n", mainprog);		exit(0);	}	if((binfp=fopen(binprog, "rb+")) == NULL) {		printf("fail to open the file: %s\nexit.\n", binprog);		exit(0);	}	len = flen(mainfp);	buf = (char *)malloc(len);	fread((void *)buf, len, 1, mainfp);	for(i=0;i<len-strlen(schstr);i++) {		for(j=0;j<strlen(schstr);j++)			tmp[j] = *(buf+i+j);		tmp[strlen(schstr)] = '\0';		if(strcmp(tmp, schstr) == 0)			break;	}	fseek(mainfp, i, SEEK_SET); 	free(buf);	len = flen(binfp);	buf = (char *)malloc(len);	fread((void *)buf, len, 1, binfp);	fwrite((void *)buf, len, 1, mainfp);	free(buf);	printf("Copy binary program successful!\n");}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -