📄 cploader.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 + -