IAP合并脚本C语言文件IO版本-后面准备优化路径

#include <stdio.h>

int main(void)
{
	FILE *fp1,*fp2,*fp3; 
	char ch;
	int lSize=0;
	
	fp1 = fopen("IAP.hex", "r");
	fp3 = fopen("M.hex", "w");
	ch = fgetc(fp1);
	while(ch!=EOF)
	{
		fputc(ch , fp3);
		ch = fgetc(fp1);
	}
	fclose(fp1);
#if 0
	lSize = ftell (fp3);//告诉指针当前位置 29788 正巧是告诉文件大小29.0 KB (29,788 字节)
	printf("%d\n",lSize);
	fseek (fp3 , 10 , SEEK_END);//从文件尾部移动10字节 这样下面的打印是29798 形成10个空洞 如果二参数是-10就是左移10 打印29778
	lSize = ftell (fp3);
	printf("%d\n",lSize);
	rewind (fp3);//把指针放到文件头部 这样下面的打印就是0
	lSize = ftell (fp3);
	printf("%d\n",lSize);
#endif	

	fseek (fp3 , -13 , SEEK_END);//从尾部往左边走13 正好丢弃最后1行
	fp2 = fopen("APP.hex", "r");
	ch = fgetc(fp2);
	while(ch!=EOF)
	{
		fputc(ch , fp3);
		ch = fgetc(fp2);
	}
	fclose(fp2);
	fclose(fp3);
	printf("FINISH");
	scanf("%d\n",&ch);//人为堵塞一下
	return 1;
}


#include <stdio.h>

//int main(void)
int main(int argc,char **argv)
//argc是命令行总的参数个数   
//argv[]为保存命令行参数的字符串指针,其中第0个参数是程序的全名 也就是用户传入的从第1个开始用
//$PROJ_DIR$\..\Tool\CombineBootloaderAndApplication.exe
//$PROJ_DIR$\..\bootloader\Debug\Exe\bootloader.hex
//$PROJ_DIR$\Seed_STM32L471RE\Exe\application.hex
//$PROJ_DIR$\Seed_STM32L471RE\Exe\TOUCH-H1&H2&H3-V200_BTEA.hex
//argv[0]--本程序名字
//argv[1]--IAP路径
//argv[2]--APP路径
//argv[3]--合并HEX路径
{
	FILE *fp1,*fp2,*fp3; 
	char ch;
	int lSize=0;
	
	fp1 = fopen("argv[1]", "r");
	fp3 = fopen("argv[3]", "w");
	ch = fgetc(fp1);
	while(ch!=EOF)
	{
		fputc(ch , fp3);
		ch = fgetc(fp1);
	}
	fclose(fp1);
#if 0
	lSize = ftell (fp3);//告诉指针当前位置 29788 正巧是告诉文件大小29.0 KB (29,788 字节)
	printf("%d\n",lSize);
	fseek (fp3 , 10 , SEEK_END);//从文件尾部移动10字节 这样下面的打印是29798 形成10个空洞 如果二参数是-10就是左移10 打印29778
	lSize = ftell (fp3);
	printf("%d\n",lSize);
	rewind (fp3);//把指针放到文件头部 这样下面的打印就是0
	lSize = ftell (fp3);
	printf("%d\n",lSize);
#endif	

	fseek (fp3 , -13 , SEEK_END);//从尾部往左边走13 正好丢弃最后1行
	fp2 = fopen("argv[2]", "r");
	ch = fgetc(fp2);
	while(ch!=EOF)
	{
		fputc(ch , fp3);
		ch = fgetc(fp2);
	}
	fclose(fp2);
	fclose(fp3);
	printf("GKoSon FINISH");
	return 1;
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值