【データ受け渡し】Pythonで出力したバイナリーデータをC言語で読み込む

いつも忘れるのでメモ。
C言語からPython ver. はこちら

例えばPython側で

import numpy as np


f = open("test.dat","wb")

for i in range(2):

    a = np.array([979517696]).astype("i8")

    f.write(a.tobytes())

    a = np.array([5]).astype("f8")

    f.write(a.tobytes())

    a = np.array([10]).astype("i4")

    f.write(a.tobytes())

f.close()


のように出力したら、C言語側で

#include <stdio.h>


int main(int argc, char **argv)

{

        double d;

        long long l;

        int i;

        FILE *file;

        char* fname="test.dat";

        file = fopen(fname,"rb");

        fread(&l,sizeof(l),1,file);

        printf("%lld\n", l);

        fread(&d,sizeof(d),1,file);

        printf("%f\n", d);

        fread(&i,sizeof(i),1,file);

        printf("%d\n", i);

        fclose(file);

        

        return 0;

}

のように読み込めば良い。

コメント

このブログの人気の投稿

旧バージョンのiMovieを入れる方法

TWRP公式サポートされてないAndroid端末でシステムインストールした話

[UTAU] Garagebandで作ったボーカルメロディーをUTAUに読ませる