C / バイナリをヘッダ変換


folder open/close View Outline

bin2h.c

必要に迫られて作ってみました。意外とサンプルがない。

動きますが、いいかげんなので誰かもっとかっこよくして。

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[]){

    FILE *fp = NULL;
    char buffer[2];
    int rpoint = 0;

    if(argc != 3){
        fprintf(stderr, "usage: %s filename headname\n", argv[0]);
        return(-1);
    }

    fp = fopen(argv[1], "rb");

    if(fp == NULL){
        fprintf(stderr, "error: file open error(%s)\n",argv[1]);
        return(-1);
    }

    rpoint = 0;
    printf("static const char %s[] = {", argv[2]);
    while(fgets(buffer, 2, fp)){
        if((rpoint % 16) == 0){
            if(rpoint != 0){
                printf(",\n    ");
            }else{
                printf("\n    ");
            }
        }else{
            printf(", ");
        }
        printf("0x%02x", (int)((unsigned char)buffer[0]));
        rpoint++;
    }
    printf("\n    };\n");
    fclose(fp);

}

h2bin.c

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

#include "hogehoge.h"

int main(int argc, char* argv[]){

    FILE *fp = NULL;
    int wpoint = 0;

    if(argc != 2){
        fprintf(stderr, "usage: %s filename\n", argv[0]);
        return(-1);
    }

    fp = fopen(argv[1], "wb");

    if(fp == NULL){
        fprintf(stderr, "error: file open error(%s)\n",argv[1]);
        return(-1);
    }

    for(wpoint = 0; wpoint < sizeof(hogehoge); wpoint++)
        fputc(hogehoge[wpoint], fp);
    fclose(fp);

}

ナビゲーション

プロフィール

Photo Hondarer  My status

自分に正直に、目指す物を目指すかたちで、全ての人が幸せになれるシステムを削り出す職人でありたい。

Powered by
HndWiki 014114