编辑代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

typedef signed int                       int32_t;
typedef signed short                     int16_t;
typedef signed char                      int8_t;

typedef unsigned int                     uint32_t;
typedef unsigned short                   uint16_t;
typedef unsigned char                    uint8_t;


void genrate_random_data(uint8_t *random, uint8_t num) {
    time_t time0 = time(NULL); 

    srand(time0);
    for (uint8_t i = 0; i < num; i++) {
        random[i] = rand();
        printf("%02X ", random[i]);
    }
    printf("\n");
}

void save_ramdon_to_file(uint8_t *random, uint8_t num) {
    FILE *src_fp;
    uint8_t tmp[3] = {0};
    char buffer[100*2] = {0};
    size_t len;

#if 0
    src_fp = fopen("src.txt", "w+");
    for (uint8_t i = 0; i < num; i++) {
        len = snprintf(tmp, sizeof(tmp), "%02X", random[i]);
        // printf("%s\n", tmp);
        fwrite(tmp, len, sizeof(uint8_t), src_fp);
    }
    fclose(src_fp);

    src_fp = fopen("src.txt", "r");
    len = fread(buffer, sizeof(uint8_t), num * 2, src_fp);
    printf("read:[%d][%s]\n", len, buffer);
    fclose(src_fp);
#else
    src_fp = fopen("src.txt", "w+");
    for (uint8_t i = 0; i < num; i++) {
        fprintf(src_fp, "%02X", random[i]);
    }
    fclose(src_fp);

    src_fp = fopen("src.txt", "r");
    len = fscanf(src_fp, "%s", buffer);
    printf("read:[%d][%s]\n", (int)len, buffer);
    fclose(src_fp);
#endif
}

int main () {
    uint8_t random[100] = {0};
    uint8_t random_num = 10;

    genrate_random_data(random, random_num);

    save_ramdon_to_file(random, random_num);

    return 0;
}