zoukankan      html  css  js  c++  java
  • BIN_SUM

    // BinCrcSum.cpp : 定义控制台应用程序的入口点。
    //author:sunwei
    //2019/1/19
    
    #include "stdafx.h"
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <assert.h>
    #include <stdarg.h>
    #include <stdint.h>
    #include <time.h>
    #include <direct.h>
    #include "resource.h"
    
    #pragma warning(disable : 4996)
    
    #define PATH_B  "./GSP_APP/Exe/GSP_APP.bin"//"D:/SVN_1015/GSP_TRUNK/GSP_APP/EWARM/GSP_APP/Exe/GSP_APP.bin"
    
    
    char* ReadFile (const char* szPath, size_t* pullsize)
    {
        assert (szPath != NULL);
        FILE* hFile = fopen (szPath, "rb+");
        if(hFile == NULL)
    	{
    		printf("Path is error->%s
    ", szPath);
    		getchar();
    		return NULL;
    	}
    
        fseek (hFile, 0, SEEK_END);
        long lSize = ftell (hFile);
        rewind (hFile);
    
        size_t ullNum = lSize;
        char* pos = (char*) malloc (sizeof (char) * ullNum);
        assert (pos != NULL);
    
        fread (pos, sizeof (char), ullNum, hFile);
        fclose (hFile);
        *pullsize = ullNum;
    
        return pos;
    }
    
    void WriteFile (const char* szPath, char* pOutBuff, size_t size)
    {
        assert ( (szPath != NULL) && (pOutBuff != NULL) && (size > 0));
        FILE* hFile = fopen (szPath, "a");
        assert (hFile != NULL);
        fwrite (pOutBuff, sizeof (char), size, hFile);
        fclose (hFile);
    }
    
    void Little_32to8(uint32_t source, char *dest)
    {
    	if (dest == NULL) return;
    
    	dest[0] = (source >>  0) & 0xFF;
    	dest[1] = (source >>  8) & 0xFF;
    	dest[2] = (source >> 16) & 0xFF;
    	dest[3] = (source >> 24) & 0xFF;
    }
    
    uint32_t U32SumCheck(uint8_t *dst, uint32_t size)
    {
    	uint32_t sum = 0;
    
    	while( size-- )
        {
            sum += *dst++;
        }
    	
    	return sum;
    }
    
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        size_t FileSize = 0;
    	uint32_t add;
    	char a[4];
       //打开bin文件
    	char* pBin = ReadFile(PATH_B, &FileSize);
    	if((pBin == NULL) || (FileSize <= 0)) return 0;
    	printf("GSP APP bin is %d
    ", FileSize);
       //算成累加和
    	add = U32SumCheck((uint8_t *)pBin, FileSize);
    	pBin = NULL;
    	Little_32to8(add, a);
    	WriteFile(PATH_B, a, 4);
    	pBin = ReadFile(PATH_B, &FileSize);
    	assert((pBin != NULL) && (FileSize > 0));
    	printf("GSP APP bin add sum is %d
    ", FileSize);
       //追加到bin文件尾部
    
    	//getchar();
    	return 0;
    }
    

      

    真正的对手会灌输给你大量的勇气 --卡夫卡
  • 相关阅读:
    poj 3669 Meteor Shower
    poj 3232 Accelerator
    poj 2155 Matrix
    poj 3628 Bookshelf 2
    cf C. Maze
    cf B. Fox Dividing Cheese
    hdu Children’s Queue
    cf D. Broken Monitor
    cf C. Mittens
    cf B. Berland Bingo
  • 原文地址:https://www.cnblogs.com/firstparke/p/13023861.html
Copyright © 2011-2022 走看看